Olá!
Tenho procurado bastante sobre como fazer o melhor uso da POO, dos design patterns e dos princípios SOLID, entretanto parece que as infraestruturas do Java te forçam a modelar seu domínio de forma anêmica.
A minha impressão é que eu raramente faço uso (diretamente) dos princípios da OO.
Tenho um controller ou outro mecanismo de entrega como um handler de eventos por exemplo, que vai chamar um serviço com alguma lógica de negócio, utilizando os modelos de forma anêmica, se apoiando nos POJO com getters e setters, ao final disso tudo persisto em um DAO ou um Repositório…
muda-se os padrões de camada/arquitetura, mas a essência é sempre essa.
E mesmo que você queira criar DTOs ou outros tipos de modelos que não sejam ali do domínio, algum framework ou especificação vai querer que você tenha um POJO… ou pelo menos um construtor default.
Certamente que já utilizei de alguns padrões de projetos e de boas modelagens, mas são casos bem específicos do código…
Gostaria de saber se existe alguma forma limpa no Java de trazer isso para os modelos (ex: entidades da JPA/Hibernate) ou devo me conformar que a linguagem que eu utilizo teve toda essa estrutura comunitária criada e orientada ao padrão do POJO?
Estou com uma percepção errada?
Essa dúvida está me incomodando há algum tempo.
Abraços