O que deve fazer um controlador de Aplicação?
Estou um pouco confuso no que o controlador de aplicação deve fazer? Porque eu vejo que a funcionalidade também existe em seu padrão MVP para tomar as decisões que o formulário deve ser mostrado quando um botão é clicado? Existem alguns bons exemplos para formulários do Windows que usam o padrão do controlador de Aplicação?
há uma diferença no MVC (ontroler) e no controlador de Aplicação. Eu conheço o MVC (ontroller), eu não tenho certeza quais são as responsabilidades para uma aplicação Controller, e como ele se encaixa em um aplicativo WinForms. Martin Fowler também chama isso de Padrão de controlador de Aplicação, certamente não é a mesma coisa que o MVC (ontroller)?
3 answers
Escrevi recentemente um artigo sobre a criação e utilização de um controlador de Aplicaçãono projecto Winforms C#, para dissociar directamente o fluxo de trabalho e os apresentadores dos formulários. Pode ajudar.
Dissociar O Fluxo De Trabalho E Formulários Com Um Controlador De Aplicação
Editar:
Archive.org tem uma cópia mais legível do artigo neste momento.
Um Controlador de aplicação é um pouco diferente do controlador usado no MVC.
A página de Martin Fowler no Controlador de aplicações .
No caso de um aplicativo WinForms MVP, que parece ser sobre o que o tópico da pergunta é, eu acho. Você Pode colocar toda a lógica para "que forma eu mostrar agora" no apresentador, mas à medida que sua aplicação cresce você vai estar duplicando um monte de código entre apresentadores.
Diz que tens 2 Visualizações que ambos têm um botão para" editar este elemento", ambos teriam que ter lógica para obter um WidgetEditorPresenter e mostrar a vista associada. Se você tem um ApplicationController, você move essa lógica para o ApplicationController, e agora você simplesmente tem uma dependência em todas as suas apresentadores ApplicationController e você pode chamar appController.EditWidget () e irá mostrar a vista correcta.
O controlador da aplicação é um controlador uber que controla o fluxo da aplicação em todo o seu sistema à medida que se move do ecrã para o ecrã.
O C em MVC é responsável por mais do que apenas escolher a próxima vista a ser apresentada ao cliente. Ele detém mais, de preferência todos, a lógica de negócios da aplicação, incluindo o desempenho de tarefas do sistema (como o registro e a aplicação de permissões sobre o fluxo de dados do modelo e para ele).
A sua principal tarefa é, naturalmente, servir a camada de apresentação acima dela e separá-la da camada modelo abaixo enquanto mediam entre eles. Acho que podes pensar nisso como o cérebro da aplicação. Espero que isto ajude.Yuval =8 -)