Presentador de vista de modelo
Model View Presenter (abreviatura MVP ; literalmente 'modelador de vista presentador') es un patrón de diseño en el desarrollo de software que surgió del Model View Controller (MVC). Describe un enfoque novedoso del modelo (engl. Model ) y la vista (engl. View ) se completan entre sí para separar y un presentador (engl. Presenter ) para conectarse. Además de la capacidad de prueba significativamente mejorada, la atención se centra también en la separación más estricta de los componentes individuales en contraste con MVC.
Este patrón de diseño fue utilizado y nombrado por primera vez en la década de 1990 por IBM y Taligent . Martin Fowler , sin embargo, formuló modelo-vista-presentador en 2004 según su entendimiento. Su definición es crucial hoy.
definición
MVP se basa tanto en MVC como en tres componentes: el modelo ( modelo ), la vista ( vista ) y el presentador ( presentador ).
- Modelo
- El modelo representa la lógica de la vista, que también puede ser la lógica empresarial. Sin embargo, todas las funciones deben ser accesibles a través del modelo para poder operar la vista . El modelo está controlado únicamente por el presentador . El modelo en sí no conoce ni la vista ni el presentador .
- Ver
- La vista no contiene ninguna lógica de control y solo es responsable de la representación y las entradas y salidas. Ella no tiene acceso a la funcionalidad del presentador ni al modelo . Todo el control de la vista lo realiza el presentador .
- Presentador
- El presentador es el vínculo entre el modelo y la vista . Controla los procesos lógicos entre las otras dos capas y asegura que la vista pueda cumplir con su funcionalidad.
Para que MVP pueda desarrollar sus ventajas reales sobre MVC, se utilizan para modelar y visualizar cada interfaz (inglés, interfaces ). Las interfaces definen la estructura exacta de ambas capas y el presentador simplemente vincula las interfaces entre sí. Esto asegura que el modelo y la vista se puedan intercambiar y reciclar por completo . Como resultado de la intercambiabilidad de vista, especialmente uno puede duplicar ( francés para doppelganger ) para la vista de uso a la funcionalidad desde la perspectiva de la superficie con las llamadas pruebas unitarias (inglés, pruebas unitarias ) para probar.
En 2006, Martin Fowler decidió, basándose en los hallazgos de la aplicación práctica de MVP, dividir el patrón de diseño original en dos patrones diferenciados: Controlador supervisor y Vista pasiva . Ambos patrones difieren en términos de su capacidad de prueba y su manejo.
Controlador supervisor
Supervising Controller (literalmente "Monitoring Control") es un patrón de diseño que surgió de la variante MVP original y fue definido por Martin Fowler. La vista asumetodas las tareas de sincronización de datos en la medida de lo posible, mientras que el presentador se encarga de todos los demás procesos entre el modelo y la vista . Para simplificar la sincronización posible, se puede aplicar a los enlaces de datos (Engl. Enlaces de datos a recurso). El presentador proporcionadatos sobre las clases que son conocidas por la vista y el modelo . El presentador solo se encarga de la transferencia de los objetos de datos del modelo a la vista . Esto elimina la necesidad de más trabajo de sincronización por parte del presentador , ya que la vista se sincroniza automáticamente a través de los objetos de datos. Porsu parte, el modelo también puedeacceder a los datos que han cambiadodentro de la vista a través de los objetos de datos.
Vista pasiva
La vista pasiva (literalmente "vista inactiva") es un patrón de diseño que surgió de la variante MVP original y fue definido por Martin Fowler. A diferencia del controlador supervisor, no hay conexión a través de un objeto de datos entre el modelo y la vista . Esto contribuye al hecho de que el presentador tiene que realizarcualquier sincronización de datos entre el modelo y la vista él mismo. El resultado es que la vista contiene solo la lógica más simple para la visualización y ninguna lógica para sincronizar datos. Estosimplifica enormementeel código fuente de la vista , a diferencia del controlador supervisor .
diferencias
En la vista pasiva , la capacidad de prueba se mejora en comparación con el controlador de supervisión , ya que solo el código fuente más simple para entrada y salida está disponible en la vista . Si la vista se reemplaza por un objeto simulado durante las pruebas , también se verifica el texto fuente para la sincronización en el presentador . En este caso, ya no hay ninguna lógica que valga la pena mencionar en la vista . Esto mejora significativamente la capacidad de prueba del presentador y el modelo .
Por el contrario, el controlador supervisor ofrece la ventaja de un manejo simplificado. La sincronización de datos mediante enlaces de datos entre el modelo y la vista reduce significativamente el esfuerzo de sincronización, que en total requiere menos texto fuente que en el caso de la vista pasiva .
enlaces web
- Definición de modelo-vista-presentador de Taligent (inglés, PDF, 154 KiB)
- Origen y funcionalidad de Model-View-Presenter (inglés)
- Controlador supervisor (inglés)
- Vista pasiva (inglés)
- Garry Pilkington: Uso de MVP con ASP.NET Web Forms. En: No crea el tipo. 4 de junio de 2013, obtenido el 14 de agosto de 2013 (Implementación de MVP con ASP.NET WebForms ).