2011-01-19 22 views

Respuesta

10

En MVP, el presentador asume la funcionalidad del "intermediario" (jugado por el controlador de aplicación en MVC). Además, View es responsable de manejar los eventos UI (como mouseDown, keyDown, etc.), que solía ser el trabajo del controlador. Eventualmente, el Modelo se convierte estrictamente en un Modelo de Dominio.

Dice Wikipedia.

Aquí hay un more detailed explanation on the differences between the two.

Véase también Martin Fowler's Retirement note for Model View Presenter.

6

En MVC, la vista solo se actualiza por el modelo (al escuchar sus eventos). Nunca es actualizado por el controlador. Esto es problemático cuando necesita formatear datos de modelo para la vista, de ahí la necesidad de MVP.

En MVP-Passive View, la vista se actualiza únicamente por el presentador (el presentador establece las propiedades de vista). El presentador escucha los eventos en el modelo [modificando los datos si es necesario] antes de actualizar la vista.

En MVP-Supervising Controller, la vista se actualiza por el modelo o por el presentador. Si no se requiere formato, la vista se actualiza a través del modelo. Si se requiere formatear, se actualiza a sí mismo a través del presentador.

Cuestiones relacionadas