jugador más valioso | |
---|---|
Modelo Vista Presentador | |
Estructura |
|
Plantillas relacionadas | Modelo-Vista-Controlador |
Descrito en Patrones de diseño | No |
Model-View-Presenter (MVP) es un patrón de diseño derivado de MVC que se usa principalmente para construir la interfaz de usuario .
El elemento Presentador en este patrón asume la funcionalidad de un mediador (similar a un controlador en MVC) y es responsable de manejar los eventos de la interfaz de usuario (por ejemplo, el uso del mouse ) de la misma manera que una vista suele ser responsable en otros patrones.
MVP es un patrón de diseño de interfaz de usuario que se desarrolló para facilitar las pruebas unitarias automatizadas y mejorar la separación de preocupaciones en la lógica de presentación (separación de la lógica de la pantalla):
Por lo general, una instancia de la Vista (View) crea una instancia del Representante, pasándole una referencia a sí mismo. Al mismo tiempo, el Representante trabaja con la Vista de forma abstracta, a través de su interfaz . Cuando se activa un evento de vista, invoca un método de vista específico que no tiene parámetros ni valor de retorno. El representante recibe los datos sobre el estado de la interfaz de usuario necesarios para que el método funcione a través de la interfaz de Vista y, a través de ella, también transfiere datos del Modelo y otros resultados de su trabajo a la Vista.
public class MyModel { private int _state = 0 ; public MyModel ( initState ) { _state = initState ; } getState público (){ return _state ; } } clase pública MyView : IView { private IPresenter _presenter ; public MyView () { _presenter = new MyPresenter ( este ); } } clase pública MyPresenter : IPresenter { private IView _view ; privado MiModelo _miModelo ; public MyPresenter ( vista IView ) { _view = vista ; _miModelo = nuevo MiModelo ( 1 ); } }MVP surgió como una alternativa a MVC. Se puede encontrar un análisis detallado en un artículo de Martin Fowler [1] [2] [3] [4] [5] , así como en un artículo de Derek Greer [6] .