Top Qs
Línea de tiempo
Chat
Contexto

Modelo–vista–presentador

De Wikipedia, la enciclopedia libre

Modelo–vista–presentador
Remove ads

Modelo–Vista–Presentador (MVP) es una derivación del patrón arquitectónico modelo–vista–controlador (MVC), y es utilizado mayoritariamente para construir interfaces de usuario.

Thumb
Esquema que describe la IGU del patrón de diseño Modelo Vista Presentador (MVP).

En MVP el presentador asume la funcionalidad del "intermediario". En MVP, toda lógica de presentación es colocada al presentador.[1]

Descripción de patrón

Resumir
Contexto

MVP es un patrón arquitectónico de interfaz de usuario diseñada para facilitar pruebas de unidad automatizada y mejorar la separación de inquietudes en lógica de presentación:

  • El modelo es una interfaz que define los datos que se mostrarán o sobre los que actuará la interfaz de usuario.
  • El presentador actúa sobre el modelo y la vista. Recupera datos de los repositorios (el modelo), y los formatea para mostrarlos en la vista.
  • La vista es una interfaz pasiva que exhibe datos (el modelo) y órdenes de usuario de las rutas (eventos) al presentador para actuar sobre los datos.

Normalmente, la vista de implementación instancia el objeto de presentador en concreto, proporcionando una referencia a él. El siguiente código C# demuestra una simple vista de un constructor, donde ConcreteDomainPresenter implementa la interfaz IDomainPresenter:

public class DomainView : IDomainView
{
    private IDomainPresenter domainPresenter = null;

    ///<summary>Constructor</summary>
    public DomainView()
    {
        domainPresenter = new ConcreteDomainPresenter(this);
    }
}

El grado de la lógica permitida en la vista varía entre las diferentes implementaciones.

  • En un extremo, donde la vista es totalmente pasiva, simplemente reenvía todas las operaciones de interacción hacia el presentador. En esta formulación, cuando un usuario activa un método de evento de la vista, esta no hace más que invocar un método del presentador que no tiene parámetros y no devuelve ningún valor. El presentador recupera entonces datos de la vista a través de los métodos definidos por la interfaz de vista. Por último, el presentador opera en el modelo y actualiza la vista con los resultados de la operación.
  • Otras versiones de modelo-vista-presentador permiten cierta libertad con respecto a qué clase maneja una determinada interacción, evento o comandos. Esto suele ser más adecuado para arquitecturas basadas en la Web, donde la vista, que se ejecuta en el navegador de un cliente, puede ser el mejor lugar para manejar una interacción o comando en particular.

Desde un punto de vista de capas, la clase de presentador podría considerarse como perteneciente a la capa de aplicación en un sistema de arquitectura multicapa, pero también pueda ser visto como capa de presentador de su propiedad entre la capa de aplicación y la capa de interfaz del usuario.

Remove ads

Implementación en .NET

El entorno .NET apoya el patrón MVP mucho como cualquier otro entorno de desarrollo. La misma clase modelo y presentador pueden usar soporte interfaces múltiples, como un Aplicación web ASP.NET, una aplicación de Windows Form, o una aplicación Silverlight. El presentador obtiene y establece la información de/a la vista a través de una interfaz que se puede acceder por el componente de la interfaz (vista).

Además de implementar manualmente el modelo, un marco modelo-vista-presentador puede ser utilizado para apoyar el patrón MVP de una manera más automatizada. A continuación se muestra una lista de tales marcos bajo la plataforma .NET.

Marcos .NET

Remove ads

Implementación en Java

En una aplicación Java (AWT/Swing/SWT), el patrón MVP puede ser utilizado dejando la clase de interfaz del usuario implementar una interfaz de vista.

La misma aproximación puede ser utilizada para aplicaciones basadas en web Java, desde modernos marcos Web basados en componentes Java permiten el desarrollo de la lógica del lado del cliente utilizando el mismo enfoque de componentes como clientes gruesos.

Implementando MVP en Web de Google Toolkit requiere sólo que algún componente implementa la interfaz de vista. La misma aproximación es posible utilizando el marco Web Eco2.

MVP Puede ser implementado en Java SE (AWT y Swing) las aplicaciones que utilizan los marcos Biscotti y MVP4J.

Marcos Java

Enlaces externos

Referencias

Véase también

Historia

Implementación en PHP

Referencias

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads