Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Classes de domínio x implementação

Bom, fiquei com uma dúvida relacionada ao solid.

Quando eu aprendi orientação eu aprendi que você separa as classes de modelo da implementação, daí algumas regras de negócio ficam de fora dessas classes de modelo, daí eu sempre usei com a classe abaixo.

@Component
public Class Cliente {
 private String none;
 private List<Documento> documentos;

 //Getter e setter e construtor padrão
}
@Component
public Class Documento{
  private String nome;

  // Getter e setter e construtor padrão

public Class ValidadorDocumento{
  public boolean validar(Documento documento){
   // Faz algo
  }

}

Se eu deixar sem o construtor default. Ao usar a injeção de dependência do spring eu tenho erro, daí me força a não usar a injeção do spring para omitir os setter e usar somente o construtor. Fiquei com essa dúvida

1 resposta
solução!

Não existe almoço grátis. Outros frameworks, como o hibernate, também te forçam a ter um construtor vazio. Nesse caso você ganha todos os recursos que o framework te proporciona mas acaba perdendo a segurança de forçar o cliente a instanciar seu objeto já com atributos importantes preenchidos. Utilizar esses frameworks não é errado, apenas temos que ter cuidado