Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
O padrão Active Record deveria unir lógica de negócio com lógica de persistência, certo?. Porém, na maioria dos frameworks (PHP - cake, code igniter, spaghetti, Ruby - rails, Java - JSF), voltados para o padrão MVC, o Active Record (ou model) guarda somente a lógica de banco de dados. Nesses frameworks há a necessidade de criar 2 classes para uma mesma funcionalidade: o Model e o Controller. A minha dúvida é: Pra que isso?
O correto não seria ter uma única classe que gerenciasse todas as tarefas referentas à ela? Afinal, esse é o preceito da orientação a objetos e do padrão Active Record.
No exemplo abaixo fica claro como parece besteira ter que declarar uma classe que praticamente não tem função, senão herdar algumas funções de persistência
Class Produto extends Model{}
Class ProdutoController extends Controller{
function salvarProduto() {
.... lógica de validação ....
produto = new Produto();
produto.salvar();
}
}
Não seria mais coerente fazer algo do tipo:
Class Produto extends Model{
public function salvarProduto(){
.... lógica de validação ...
this.salvar();
}
}
Ou seja, a própria classe trata de todas as atividades referente à sua funcionalidade.
Então, estou equivocado ou é por aí mesmo?
Carregando comentários...