23.04.2021

Model-View-Presenter


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

Элемент Presenter в данном шаблоне берёт на себя функциональность посредника (аналогично контроллеру в MVC) и отвечает за управление событиями пользовательского интерфейса (например, использование мыши) так же, как в других шаблонах обычно отвечает представление.

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

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

  • Модель (англ. Model) — данные для отображения;
  • Вид (англ. View) — реализует отображение данных (из Модели), обращается к Presenter за обновлениями, перенаправляет события от пользователя в Presenter;
  • Представитель (англ. Presenter) — реализует взаимодействие между Моделью и Видом и содержит в себе всю логику представления данных о предметной области; при необходимости получает данные из хранилища и преобразует для отображения во View.

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

public class MyModel { private int _state = 0; public MyModel(initState) { _state = initState; } public getState(){ return _state; } } public class MyView: IView { private IPresenter _presenter; public MyView() { _presenter = new MyPresenter(this); } } public class MyPresenter: IPresenter { private IView _view; private MyModel _myModel; public MyPresenter(IView view) { _view = view; _myModel= new MyModel(1); } }

История

MVP, возник как альтернатива MVC. Подробный анализ в статье Мартина Фаулера , а также в статье Дерека Грира.


Похожие новости:

Меню (информатика)

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

Метаобъектное средство

Метаобъектное средство
Мета-объектное средство (MOF, Meta-Object Facility) — это стандарт для разработки, управляемой моделями, разработанный OMG. Обзор MOF возникло из UML. OMG нуждался в архитектуре метамоделирования

Midori (браузер)

Midori (браузер)
Midori (яп. 緑 зелёный) — легковесный браузер с графическим интерфейсом пользователя, использующий для отображения веб-страниц движок WebKit, а для построения интерфейса — библиотеку GTK+.

Протокол передачи данных

Протокол передачи данных
Протокол передачи данных — набор соглашений интерфейса логического уровня, которые определяют обмен данными между различными программами. Эти соглашения задают единообразный способ передачи сообщений
Комментариев пока еще нет. Вы можете стать первым!

Добавить комментарий!

Ваше Имя:
Ваш E-Mail:
Введите два слова, показанных на изображении: *
Популярные новости
Выберите квартиру своей мечты в ЖК Катуар
Выберите квартиру своей мечты в ЖК Катуар
Покупка квартиры в Подмосковье – это вклад в свое перспективное будущее. Вариантов реализации...
Керамические столы: новый тренд в интерьере
Керамические столы: новый тренд в интерьере
Наряду с искусственным камнем и стеклом для изготовления столов мебельные фабрики используют...
Рулонные шторы Зебра по индивидуальным размерам с доставкой по РФ от РУЛОНКА.РУС
Рулонные шторы Зебра по индивидуальным размерам с доставкой по РФ от РУЛОНКА.РУС
Обычные занавески в паре с тюлем выгоднее рольштор тем, что они надёжно маскируют своё помещение....
Все новости