As actions são models?

9 respostas
bruno77sa

ola! galera do guj,

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! :slight_smile:

abraços

9 Respostas

peerless

Tudo que é ação/evento é controlador, logo: controller!

abçs

bruno77sa

ok!!

então pq na documentação do struts2 por exemplo
as actions estão como model?

sergiotaborda

bruno77sa:
ola! galera do guj,

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?

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.

pcalcado

Actions são parte do Controller.

O servlet (se existir) é apenas um dispatcher que encontra a action correspondente e a executa, tudo isso ocorre no controller.

De uma maneira simples: Model é onde as regras de negócio ficam e actons não possuem regras de negócio.

sergiolopes

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).

bruno77sa

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.

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.

sergiotaborda

bruno77sa:
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.

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!!

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.

rodrigoallemand

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…

bruno77sa

rodrigoallemand:

Impossivel imaginar que a Apache e o pessoal do Struts colocou tamanha besteira no site…

se colocou no site eu nao encontrei, mas no site tem referencias para books, e pdfs que mostra a action como
model veja abaixo:

nesse pdf no capitulo 3 "Core Components " logo apos uma figura que mostra a action como model tem um trecho que diz

sergiotaborda, obrigado pelas explicacoes, eu entendi o seu ponto de vista e concordo.

um abraco a todos

Criado 1 de dezembro de 2007
Ultima resposta 2 de dez. de 2007
Respostas 9
Participantes 6