Model-View-Presenter
En el MVP, el Presentador contiene la interfaz de usuario de la lógica de negocio para la Vista. Todas las invocaciones desde el punto de Vista delegado directamente al Presentador. El Presentador también está desacoplado directamente de la Vista y habla a través de una interfaz. Esto es para permitir a las burlas de la Vista en una unidad de prueba. Un atributo común de MVP es que tiene que haber un montón de envío. Por ejemplo, cuando alguien hace clic en el botón "Guardar", el controlador de eventos a los delegados a la del Presentador de "OnSave" método. Una vez que el proceso de almacenamiento se haya completado, el Presentador llamará de nuevo la Vista a través de su interfaz por lo que la Vista puede mostrar que el ahorrar se ha completado.
MVP tiende a ser muy patrón natural para el logro de presentación separados en los Formularios Web. La razón es que la Vista es siempre crea por primera vez por el ASP.NET en tiempo de ejecución. Usted puede encontrar más información sobre ambas variantes.
Las dos principales variaciones de
Pasivo Vista: La Vista es tan tonto como sea posible y contiene casi a cero la lógica. El Presentador es un medio hombre que habla a la Vista y el Modelo. La Vista y el Modelo son completamente blindado de uno a otro. El Modelo puede generar eventos, pero el Presentador se suscribe a ellos para la actualización de la Vista. En Opinión de Pasivo no hay ningún enlace de datos directo, en lugar de la Vista expone setter propiedades que el Presentador utiliza para establecer los datos. Todos los administra el estado en el que el Presentador y no la Opinión.
- Pro: la máxima capacidad de prueba de la superficie; una separación limpia entre la Vista y el Modelo
- En contra: más de trabajo (por ejemplo, todo el setter propiedades) como lo están haciendo todos los datos de unión a sí mismo.
Controlador supervisor: El Presentador de identificadores de usuario gestos. La Vista se une a la Modelo directamente a través del enlace de datos. En este caso es el Presentador del trabajo para pasar el Modelo a la Vista, de modo que se puede enlazar con él. El Presentador también contendrá la lógica de gestos como pulsar un botón, la navegación, etc.
- Pro: mediante el aprovechamiento de enlace de datos la cantidad de código es reducido.
- En contra: hay menos comprobables superficie (porque de enlace de datos), y hay menos de encapsulación en la Vista, ya que habla directamente con el Modelo.
Modelo-Vista-Controlador
En el MVC, el Controlador es el responsable de determinar que se muestra la Vista en respuesta a cualquier acción, incluso cuando se carga la aplicación. Esto difiere de MVP en la que las acciones de la ruta a través de la Vista, el Presentador. En MVC, cada acción en la Vista se correlaciona con una llamada a un Controlador junto con una acción. En la web de cada acción implica una llamada a una URL en el otro lado de la cual hay un Controlador que responde. Una vez que el Controlador ha completado su tratamiento, se le devolverá el punto de Vista correcto. La secuencia continúa de esa manera durante toda la vida de la aplicación:
La acción en la Vista
-> Llamada al Controlador
-> Controlador De Lógica
-> Controlador devuelve la Vista.
Otra gran diferencia sobre MVC es que la Vista no se unen directamente a la Modelo. El punto de vista simplemente hace, y es completamente independiente. En implementaciones de MVC la Vista, por lo general no tienen ninguna lógica en el código de detrás. Esto es contrario a MVP de donde es absolutamente necesario, como si la Vista no delegado a la Presentadora, que nunca será llamado.
Modelo De Presentación
Otra pauta a tener en cuenta es la Presentación del Modelo patrón. En este modelo no hay Presentador. En lugar de la Vista se une directamente a un Modelo de Presentación. El Modelo de Presentación es un Modelo diseñado específicamente para la Vista. Esto significa que este Modelo puede exponer las propiedades que uno nunca pondría en un modelo de dominio, ya que sería una violación de la separación de preocupaciones. En este caso, el Modelo de Presentación se une a la modelo de dominio, y puede suscribirse a los eventos procedentes de ese Modelo. La Vista, a continuación, se suscribe a los eventos procedentes de la Presentación del Modelo y se actualiza en consecuencia. El Modelo de Presentación puede exponer a los comandos de la vista utiliza para invocar acciones. La ventaja de este enfoque es que esencialmente puede quitar el código subyacente en el PM encapsula completamente todo el comportamiento de la vista. Este patrón es un muy fuerte candidato para su uso en aplicaciones de WPF y es también llamado Model-View-ViewModel.
Hay un artículo de MSDN sobre el Modelo de Presentación y una sección en la Guía de Aplicaciones Compuestas para WPF (ex Prisma) acerca de los Patrones de Presentación Separados