2008-09-23 7 views
10

Estoy un poco confundido en lo que debería hacer el controlador de la aplicación? Porque veo que la funcionalidad también existirá en su patrón MVP para tomar las decisiones, ¿qué formulario debería mostrarse cuando se hace clic en un botón? ¿Hay algún buen ejemplo para Windows Forms que utiliza el patrón de controlador de la aplicación?¿Qué debería hacer un controlador de aplicación?

Hay una diferencia en el MVC (ontroler) y el controlador de la aplicación. Conozco el MVC (ontroller), no estoy seguro de cuáles son las responsabilidades de un Controlador de aplicaciones, y cómo encaja en una aplicación WinForms. Martin Fowler también lo llama el patrón de controlador de aplicaciones, seguramente no es lo mismo que el MVC (ontroller)?

Respuesta

0

Personalmente no tengo experiencia con MVP o winforms, pero he trabajado con MVC. Espero que esto sea lo que estás preguntando, de lo contrario, ignora por completo mi respuesta.

El C en MVC es responsable de algo más que la elección de la siguiente vista para ser presentados al cliente. Contiene la mayoría, preferiblemente todos, lógica de negocios de la aplicación, incluida la ejecución de las tareas del sistema (como el registro y la aplicación de permisos sobre el flujo de datos del modelo y al mismo).

su tarea principal es, naturalmente, para servir a la capa de presentación por encima de ella y separarla de la capa siguiente modelo, mientras que la mediación entre ellos. Supongo que puedes pensar que es el cerebro de la aplicación.

Hope esto ayuda,

Yuval = 8-)

11

Un Controlador de aplicación es un poco de una bestia diferente que el controlador utilizado en MVC. la página de

Martin Fowler en la Application Controller.

En el caso de una aplicación Windows Forms MVP, que parece ser lo que el tema de la pregunta es acerca creo. Usted puede poner toda la lógica para "qué forma mostrar ahora" en el presentador, pero a medida que su aplicación crezca va a estar duplicando una gran cantidad de código entre los presentadores.

Digamos que tiene 2 puntos de vista que ambos tienen un botón de "Editar este Widget", ambos de ellos tendría que tener lógica para obtener una WidgetEditorPresenter y mostrar la vista asociada. Si tiene un ApplicationController, mueve esa lógica al ApplicationController, y ahora simplemente tiene una dependencia en todos sus presentadores en ApplicationController y puede llamar a appController.EditWidget() y aparecerá la vista correcta.

El controlador de aplicación es un súper-controlador que controla el flujo de aplicación en todo el sistema al pasar de una pantalla a otra.

+0

Gran respuesta, en el momento de mi respuesta, el OP era menos claro en cuanto a lo que quería saber. –

Cuestiones relacionadas