Jump to content

Модель-представление-презентатор

Диаграмма, изображающая шаблон проектирования графического пользовательского интерфейса модель-представление-презентатор (MVP).

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

В MVP ведущий берет на себя функционал «посредника». В MVP вся логика представления передается презентатору. [ 1 ]

Программный шаблон модель-представление-презентатор возник в начале 1990-х годов в Taligent , совместном предприятии Apple , IBM и Hewlett-Packard . [ 2 ] MVP — это базовая модель программирования для разработки приложений в C++ среде CommonPoint компании Taligent на основе . Позже этот шаблон был перенесен компанией Taligent на Java и популяризирован в статье технического директора Taligent Майка Потеля. [ 3 ]

После прекращения поддержки Taligent в 1998 году Энди Бауэр и Блэр МакГлашан из Dolphin Smalltalk адаптировали шаблон MVP, чтобы сформировать основу для своей структуры пользовательского интерфейса Smalltalk. [ 4 ] В 2006 году Microsoft начала включать MVP в свою документацию и примеры программирования пользовательского интерфейса в .NET Framework . [ 5 ] [ 6 ]

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

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

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

Обычно реализация представления создает экземпляр конкретного объекта-презентатора, предоставляя ссылку на себя. Следующий код C# демонстрирует простой конструктор представления:

public class Presenter : IPresenter 
{
    public Presenter(IView view) 
    {
        // ...
    }
}

public class View : IView
{
    private IPresenter _presenter;

    public View()
    {
        _presenter = new Presenter(this);
    }
}

Степень логики, разрешенная в представлении, варьируется в зависимости от реализации. С одной стороны, представление полностью пассивно, перенаправляя все операции взаимодействия презентатору. В этой формулировке, когда пользователь запускает метод события представления, он ничего не делает, а вызывает метод презентатора, который не имеет параметров и возвращаемого значения. Затем ведущий извлекает данные из представления с помощью методов, определенных интерфейсом представления. Наконец, ведущий работает с моделью и обновляет представление результатами операции. Другие версии model-view-presenter допускают некоторую свободу в отношении того, какой класс обрабатывает конкретное взаимодействие, событие или команду. Зачастую это больше подходит для веб-архитектур, где представление, выполняемое в браузере клиента, может быть лучшим местом для обработки конкретного взаимодействия или команды.

С точки зрения многоуровневого представления класс презентатора можно рассматривать как принадлежащий уровню приложения в системе с многоуровневой архитектурой , но его также можно рассматривать как собственный уровень презентатора между уровнем приложения и уровнем пользовательского интерфейса .

Реализации

[ редактировать ]

Среда .NET поддерживает шаблон MVP так же, как и любая другая среда разработки. Одна и та же модель и класс презентатора могут использоваться для поддержки нескольких интерфейсов, например веб-приложения ASP.NET или приложения Windows Forms . Ведущий получает и устанавливает информацию из/в представление через интерфейс, к которому может получить доступ компонент интерфейса (представления).

Помимо реализации шаблона вручную, для более автоматизированной поддержки шаблона MVP можно использовать структуру модель-представление-презентатор.

В приложении Java ( AWT / Swing / SWT ) шаблон MVP можно использовать, разрешив классу пользовательского интерфейса реализовать интерфейс представления.

Тот же подход можно использовать для веб-приложений Java, поскольку современные веб-фреймворки на основе компонентов Java позволяют разрабатывать логику на стороне клиента, используя тот же компонентный подход, что и толстые клиенты.

Для реализации MVP в Google Web Toolkit требуется только, чтобы какой-либо компонент реализовал интерфейс представления. Тот же подход возможен с использованием Vaadin или веб-инфраструктуры Echo2 .

Java-фреймворки включают в себя следующее:

Что касается гибкой среды выполнения PHP , существуют широкие возможности подходов к логике приложения. Реализация уровня модели остается на усмотрение конечного прикладного программиста.

PHP-фреймворки включают в себя следующее:

См. также

[ редактировать ]
  1. ^ «Проект ГВТ» . Developers.google.com .
  2. ^ Требуется исследование. Эта модель использовалась в сфере ERP (Lawson Software Inc.) задолго до этого.
  3. ^ «MVP: Model-View-Presenter. Талантливая модель программирования для C ++ и Java». Майк Потель
  4. ^ «Изменение триады. Эволюция среды приложений Dolphin Smalltalk MVP». Энди Бауэр, Блер МакГлашан
  5. ^ «Выпуски журнала MSDN» . msdn.microsoft.com . 7 октября 2019 г.
  6. ^ «Шаблон Модель-Представление-Презентатор (MVP)» . msdn.microsoft.com . 27 апреля 2010 г.
  7. ^ «Архитектура графического интерфейса» Мартин Фаулер
  8. ^ «Шаблоны архитектуры интерактивных приложений» . www.aspiringcraftsman.com .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: da3db51bd6e01b7412c89e130accbb21__1724288880
URL1:https://arc.ask3.ru/arc/aa/da/21/da3db51bd6e01b7412c89e130accbb21.html
Заголовок, (Title) документа по адресу, URL1:
Model–view–presenter - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)