Boa noite pessoal, tudo bom?
Estive pensando ultimamente neste tema. Neste exemplo:
class Nome {
private final String nome;
public Nome(String n) {
if (n == null || n.equals(""))
throw new IllegalArgumentException("Nome deve ser preenchido.");
}
public String getNome() {
return nome;
}
public static Nome nome(String n) {
return new Nome(n);
}
}
class Pessoa {
private Nome primeiroNome;
private Nome sobrenome;
public Pessoa(Nome primeiroNome, Nome sobrenome) {
this.primeiroNome = primeiroNome;
this.sobrenome = sobrenome;
}
....
}
Há também a possibilidade de não realizar a validação na criação, e validar depois com um método, porém deixaria meus objetos por um período em um estado inválido.
Como vocês fazem essas validações? Lembrando: não estou usando nenhum framework.
Muito obrigado!