Jump to content
Menino

MVC: Um controlador por view?

Recommended Posts

Menino

Já andei a pesquisar e não encontrei bem a resposta á minha pergunta que é a seguinte, Deve-se ou não fazer um controlador para cada view? ou devemos chamar as views todas no mesmo controlador?

Obrigado

Edited by brunoais
título muito melhorado

Share this post


Link to post
Share on other sites
taviroquai

Viva,

Resposta curta: Não. Podes ter apenas 1 controlador e N views.

Resposta mais longa:

Antes de pensares na View (que normalmente é isso que o utilizador quer), pensa na ação do utilizador.

Normalmente uma ação é recebida num controlador + método (isto usando POO). Ou seja, podes ter - apenas - 1 classe de controlador e N métodos (ações).

Um outro caso típico é o Wizard (ou Assistente). Neste caso, podes ter 1 controlador e 1 método para cada passo do assistente.

Share this post


Link to post
Share on other sites
yoda

Um controlador corresponde a um pedido do cliente, numa análise simples, mas não tem de ser assim. Podes programar o sistema de forma a que aceite tanto pedidos externos como internos, sendo que num request existe apenas um pedido externo e podem existir N pedidos internos. Isto facilita por exemplo quando precisamos trabalhar num sistema que chama algum script thirdparty ou que funciona por módulos ou algo similar. Um controller é apenas uma porta de acesso, uma indicação para o sistema.

  • Vote 1

Share this post


Link to post
Share on other sites
mAiN_iNfEcTiOn
Um controlador corresponde a um pedido do cliente

Sim... Ou não! Se vires por exemplo a framework Laravel, esta é MVC, mas tem um router poderoso, que faz uso de funções anónimas (e/ou Closures) e permite que, sem Controller, possas responder (com ou sem Views) ao pedido do utilizador!

Numa arquitectura onde há um Controller para cada View, não seria melhor ter MVVM ? No entanto, de referir que MVVM é bastante usado no desenvolvimento client-side...

Share this post


Link to post
Share on other sites
yoda

Laravel não é MVC, é mais um exemplo de interpretação errada do MVC. Não existem frameworks para a web em MVC, e a razão é simples : o conceito MVC aplicado a uma framework retira o sentido de framework à mesma, coisa que a comunidade não quer, mas que se fosse feito tornava a web muito mais eficiente, aproximando o resultado final ao DDD (Domain-Driven Design). A eficiência e reusabilidade estão ainda longe de estarem unidas até na mente no programador, fruto da sociedade em que vivemos, vertiginosa.

Edited by yoda

Share this post


Link to post
Share on other sites
Cronometro

Sim... Ou não! Se vires por exemplo a framework Laravel, esta é MVC, mas tem um router poderoso, que faz uso de funções anónimas (e/ou Closures) e permite que, sem Controller, possas responder (com ou sem Views) ao pedido do utilizador!

Numa arquitectura onde há um Controller para cada View, não seria melhor ter MVVM ? No entanto, de referir que MVVM é bastante usado no desenvolvimento client-side...

A principal vantagem do MVVM é o databinding, que só é possivel se for tudo em clientside.

A grande diferença entre MVVM e MVC é que em MVVM existe uma constante "atualização" de dados tanto da View como na ViewModel e em MVC existe apenas uma vez por "ação" ou "chamada".

Penso que só porque existe uma action por view não é motivo para se usar MVVM em vez de MVC... ou estou errado?


Software is like sex: It’s better when it’s free.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.