Quando ouvi falar de MVC pela primeira vez, em uma disciplina de estrutura de dados, achei aquela idéia muito legal.
A princípio não entendi precisamente como funciona esse bixo e achava realmente isso que o colega diz não ser:
Por um tempo permaneci na ignorância achando que era isso, talvez por não ter, na época, com quem conversar sobre isso (não participava do GUJ, programava em C++) e ficava feliz fazendo meus God Objects dizendo “to usando MVC”.
Felizmente depois de um tempo refleti bastante e fui contestando aquilo que eu jugava saber sobre MVC.
Após ler bastante e principalmente quando comecei a trabalhar com Java meu contato com patterns cresceu bastante e continuo contestado a utilização de cada um deles, como acredito que deva ser feito por todos (principalmente arquitetos de sistema, ouviram? hehehehe).
Hoje consigo definir um modelo MVC muito mais fiel aquilo que ele se propõe, acredito, e não aquela visão distorcida que tive, por ter aprendido errado num primeiro momento.
Certa vez estava refletindo sobre a dependência da view com a controler e cheguei a conclusão de que pra cada View uma nova Controler deve ser concebida, uma vez que, como já citado anteriormente, essas duas “camadas” estão intimamente ligadas.
Conclui então que a “camada” model é composta por todo o “core” do projeto, onde a lógica de negócios estã implementada, junto a persitência e outras cocitas e pode(deve) ser organizado em “subcamadas” definidas.
Já vi muitos projetos que dizem implementar MVC com essas responsabilidades todas misturadas, inclusive comentendo heresias que prefiro não citar por aqui, o que me levou a pensar a respeito daquele projeto: “mvc uma ova!”. Entre outros crimes hehehe de arquitetura.
Espero ter me espressado corretamente, qualquer coisa estou aberto a discuções e por favor, caso discordem eu peço que dêem sua opinião, algo que aprendi muito nos últimos anos foi a ouvir.