Model-View-Presenter

Model-View-Presenter
Шаблон проектирования
Model View Presenter

Model-View-Presenter (MVP) — шаблон проектирования, производный от MVC, который используется в основном для построения пользовательского интерфейса.

В MVP Presenter берет на себя функциональность посредника (играя роль, аналогичную контроллеру в MVC). Кроме того, Presenter отвечает за управление событиями пользовательского интерфейса (например, mouseDown, keyDown и т.д.), которое обычно было заботой контроллера. В итоге, модель становится строго моделью предметной области.

Содержание

Описание шаблона

MVP — шаблон проектирования пользовательского интерфейса, который был разработан для облегчения автоматического модульного тестирования и улучшения разделения ответственности в презентационной логике (отделения логики от отображения):

  • Модель (model) представляет собой интерфейс, определяющий данные для отображения или участвующие в пользовательском интерфейсе иным образом
  • Вид (view) - это интерфейс, который отображает данные (модель) и маршрутизирует пользовательские команды (или события) Presenter-у, чтобы тот действовал над этими данными.
  • Presenter действует над моделью и видом. Он извлекает данные из хранилища (модели), и форматирует их для отображения в Виде (view).

View определяется как интерфейс, который Presenter будет использовать для получения и установки данных модели.

Обычно, реализация View инстанциирует конкретный объект Presenter-а, и предоставляет ссылку на себя. (Формально параметром конструктора Presenter’a является интерфейс View, в то время, как в конструктор передается конкретная реализация View). Когда вызывается событие View, оно вызывает конкретный метод Presenter’а который не имеет параметров и не имеет возвращаемого значения. Затем Presenter получает данные из View, через интерфейс. Затем Presenter вызывает методы модели, и устанавливает данные из модели во View через интерфейс.

Следующий код C# демонстрирует простой конструктор Вида, здесь ConcreteDomainPresenter есть реализация интерфейса IDomainPresenter:

public class DomainView: IDomainView
{
    private IDomainPresenter domainPresenter;
 
    public DomainView()   // Constructor
    {
        this.domainPresenter = new ConcreteDomainPresenter(this);
    }
}

Количество логики допустимой в Виде различается для разных реализаций.

С точки зрения многоуровневой модели приложений в ООП Presenter может рассматриваться как уровень приложения, так же как и самостоятельный уровень между уровнем приложения и уровнем пользовательского интерфейса.

История

Эволюция и несколько вариантов шаблона MVP, в том числе отношения MVP с другими паттернами, такими как MVC, были подробно проанализированы в статье Мартина Фаулера[1] [2] , также в другой статье Дерека Грира[3].

См. также

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Полезное


Смотреть что такое "Model-View-Presenter" в других словарях:

  • Model–view–presenter — (MVP) is a derivative of the model–view–controller (MVC) software pattern, also used mostly for building user interfaces. In MVP the presenter assumes the functionality of the middle man (played by the controller in MVC). Additionally, the view… …   Wikipedia

  • Model View Presenter — is a software pattern considered as a derivative of the Model view controller. Pattern description The View is defined as an interface that the Presenter will use for getting and setting data to and from the Model. The View implementation will… …   Wikipedia

  • Model View Presenter — (Abkürzung: MVP; wörtlich etwa ‚Modell Ansicht Präsentator‘) ist ein Entwurfsmuster in der Softwareentwicklung, das aus dem Model View Controller (Abkürzung: MVC) hervorgegangen ist. Es beschreibt einen neuartigen Ansatz, um das Modell (engl.… …   Deutsch Wikipedia

  • Model-view-presenter — Le Modèle Vue Presentation (en abrégé MVP, de l anglais Model View Presenter) est un Patron de conception, considéré comme un dérivé du Patron de conception Modèle Vue Contrôleur. Catégorie : Patron de conception …   Wikipédia en Français

  • Model-view-controller — (MVC) is an architectural pattern used in software engineering. Successful use of the pattern isolates business logic from user interface considerations, resulting in an application where it is easier to modify either the visual appearance of the …   Wikipedia

  • Model View Controller — Konzept. Hinweis: die durchgezogene Linie symbolisiert eine direkte Assoziation, die gestrichelte eine indirekte Assoziation (zum Beispiel über einen Beobachter). Model View Controller (englisch  model view controller (MVC), deutsch auch: M …   Deutsch Wikipedia

  • Model–view–controller — A general representation of the MVC design pattern. Model view controller concept. The solid line represents a direct as …   Wikipedia

  • Model View ViewModel — The Model View ViewModel (MVVM) is an architectural pattern used in software engineering that originated from Microsoft as a specialization of the Presentation Model design pattern introduced by Martin Fowler.[1] Largely based on the Model view… …   Wikipedia

  • Model-View-Controller — Шаблон проектирования Model View Controller Кон …   Википедия

  • Model-View-ViewModel — Шаблон проектирования Model View ViewModel Шаблон Model View ViewModel  применяется при проектировании архитектуры приложения. Первоначально был представлен сообществу Джоном Госсманом (John Gossman) в 2005 году как модификация шаблона… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»