Modelo Anemico em Java

Boa noite, não sei se é um assunto que muitos conhecem, porem estava lendo sobre Orientação e vi algo relacionado sobre modelo anemico, porem nao conseguir enetender direito o conceito e como um codigo pode ser considerado um modelo anemico, algum programador mais avaçado poderia me explicar melhor por favor ?

Pesquisei um pouco e vi dizer que é um anti patter,
Não sei se estou correto, mas, por exemplo ao fazer um CRUD , usando interface grafica, se eu colocar as instruções sql misturado com os códigos relativos a interface grafica , deixando de lado o uso de uma classeDAO, pode ser considerado uma modelo anemico ?

Então… Modelo Anêmico é muitoo discutido… Você vai achar várias opiniões, mas a sua principal tese é: tenha camadas separadas: negócio, modelo, etc… Ou seja, sua Entidade Pessoa com seus getters e setters e sua camada DAO acessando os dados da Pessoa. Isso é o modelo anêmico.

Por quê ele é dito como um anti-pattern? Pois, foge do conceito de Orientação a Objetos (OO). Ao utilizar a entidade Pessoa somente para getter e setter, você perde toda riqueza de OO: polimorfismo, herança, encapsulamento, etc…
Por que?? Pois, sua entidade é “magrinha”, ela mal faz nada, só representa um Objeto, nada mais. Daí a expressão “Anêmica”.
O correto seria torná-la rica: faça a Pessoa manipular seus atributos e não outras classes. A Pessoa deve ser a única a conhecer de seus atributos e seu comportamento. Faça o uso de herança, polimorfismo e abstrações…

Fontes (recomendo a leitura):
http://blog.caelum.com.br/o-que-e-modelo-anemico-e-por-que-fugir-dele/ http://www.martinfowler.com/bliki/AnemicDomainModel.html

Antes de qualquer coisa, misturar instruçoes sql com interface gráfica é uma péssima prática, não faça isso!
Porém, não tem nada a ver com modelo anêmico.

Pra entender modelo anêmico, é preciso lembrar a idéia de OO: dados e comportamento são agrupados em entidades que chamamos objetos. Ou seja, em java, você tem classes que amarzenam dados e processam esses dados de alguma forma (depende da sua lógica de negócio).

O que chamamos de modelo anêmico é quando você tem classes pra representar os dados (geralmente refletindo uma tabela do banco de dados) e classes para processar esses dados. O que era pra ser uma coisa só (dados e comportamento juntos) são separados em classes diferentes.

Com o aumento de popularidade do paradigma funcional, muita gente se pergunta se isso é realmente um problema.

Hum entao , modelo anemico é uma boa pratica ? ou uma pratica ruim ?

Bom dia

Bom… se entendi bem, é mais ou menos isso:
Em um banco de dados tenho uma tabela para pessoas, em meu sistema tenho uma classe para incluir, deletar, alterar os dados das pessoas no bd. O ideal é que só esta classe pessoa possa fazer as modificações no banco de dados->pessoas e se outras classes necessitarem destes dados, estas classes terão que usar a classe pessoa e não ir buscar diretamente no banco de dados
Neste caso, é isso? E sim, modelo anêmico é uma péssima prática…