Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou estudando o modelo MVC e surgiram algumas dúvidas sobre a arquitetura e sobre boas práticas.
Pelo muito que eu li por ai, a coisa acontece mais ou menos assim na camada Model:
Bean - cliente.class.php
Somente atributos, GETs e SETs.
Acao- clienteAcao.class.php
Cria o objeto cliente (bean) e o envia para o objeto de persistencia DAO.
DAO - clienteDAO.class.php
Recebe o objeto Cliente (bean) e insere seus dados no banco.
Acontece que já vi várias opiniões de programadores experientes afirmando que este formato está errado, pois não está de acordo com os conceitos de orientação a objetos.
O Bean ou entidade é uma classe burra que não reflete o conceito de objeto, pois possui somente atributos. Uma classe deve representa um objeto, que possui atributos (variáveis) e comportamento (métodos). Da forma como está, os atributos estão na calsse Cliente o comportamento na classe ClienteAcao. Portanto, o correto, segundo estes programadores que citei, seria unificar a classe Cliente com a classe clienteAcao.
Bem, eu fiz isso, mas encontrei um grande problema, pois a classe de persistencia DAO recebe um objeto Cliente, mas como fazer isso se é própria classe cliente que chama os métodos da DAO? A única forma que encontrei pra fazer isso foi criar algo semelhante ao Pattern Singleton, ou seja, a própria classe Cliente cria um objeto de si mesma e repassa para a classe DAO. Isto está correto ou é uma gambiarra?
Aqui tem uma referênciasobre o uso de Beans, só q voltado para Java, mas o conceito é o mesmo.
Carregando comentários...