bem venho ultimamente estudando,mvc,model2,front-controller etc etc e nesse estudo me deparei com essa duvida, as actions
(encontradas em muitos frameworks por ai ) fazem parte do model? ou são controller?
agradeço qualquer ajuda
obs1: ja pesquisei bastante(inclusive aqui no guj) e não consegui tirar esta duvida ainda
obs2: to postando aqui no forum d metodologias mas ser for assunto de web algum moderador pode transferir minha pergunta se quiser!
bem venho ultimamente estudando,mvc,model2,front-controller etc etc e nesse estudo me deparei com essa duvida, as actions
(encontradas em muitos frameworks por ai ) fazem parte do model? ou são controller?
[/quote]
Entenda que o modelo ( como parte do MVC) é um conjunto de classes que interagem com o modelo da aplicação, com o dominio. Em outras palavras, interagem como o framework MVC não controla.
Em traços gerais a view é o que interage com a camada superior (pode ser uma camada de UI, um Broweser, outro sistema , etc… ) , o model é o que interage com camada inferior ( persistencia, dominio, serviços)
O controlador é o que orquestra o fluxo de dados entre a view e o model e de volta para a view. Normalmente não é extensivel ou não pensamos em extendê-lo. É a parte mecanica da coisa.
O controlador dos frameworks web é um servlet. É nele que tudo acontece. E esse servlet não é alterável ( ou melhor, não precisa ser)
A view são as páginas. E o modelo ? O modelo é o que o controlador questiona quando quer tomar uma decisão ou obter dados. Logo, desse ponto de vista as actions são parte do model.
Atenção que não é porque se chamam “actions” que automaticamente pertencam ou controlador. Aliás o controlador é normalmente a parte que vc não quer estender.
Eventos são objetos de comunicação entre as 3 partes do MVC portanto não pertencem a nenhum dos 3 em particular. Eles contêm dados, mas isso não faz deles parte do model.
Na minha opinião, depende muito de como sua Action está. Se você coloca lógica de negócios nela (como infelizmente muita gente faz), sua Action é um Model BEM poluído.
Se você usa sua Action pra disparar suas lógicas de negócio, então ela é um Controller (está controlando o que vai ser executado).
E se você usar qualquer framework moderno orientado a POJOs, bem provável que sua classe de Model já seja reaproveitada como Action pelo Controller (sem precisar criar Actions bobas).
[quote=pcalcado]Actions são parte do Controller.
De uma maneira simples: Model é onde as regras de negócio ficam e actons não possuem regras de negócio. [/quote]
concordo em genero numero e grau, acho que o model deve abstrair minha camada de aplicação/dominio o q achas?
agora pq frameworks como struts colocam action como modelo em sua documentação? isso deixa a coisa dificil de explicar para outros desenvolvedores aff!!
sergiousp, prefiro pensar que minha action faz parte do controller.
[quote=bruno77sa][quote=pcalcado]Actions são parte do Controller.
De uma maneira simples: Model é onde as regras de negócio ficam e actons não possuem regras de negócio. [/quote]
concordo em genero numero e grau, acho que o model deve abstrair minha camada de aplicação/dominio o q achas?
agora pq frameworks como struts colocam action como modelo em sua documentação? isso deixa a coisa dificil de explicar para outros desenvolvedores aff!!
[/quote]
Já lhe expliquei pq. Do ponto de vista do struts elas são o model. Não interessa se na sua aplicação como um todo elas são o controler, o view ou o pão com manteiga. A partir daí vc pensa o que vc quiser. Vc pode continuar não entendo pq o struts acha que são o model.
Alguem poderia colocar a parte do site que diz que as Actions são Models?!?!? Se´possivel com o link para a página?!?
Impossivel imaginar que a Apache e o pessoal do Struts colocou tamanha besteira no site…