Разработка приложения на основе RCP с использованием шаблона MVP
Я собираюсь начать разработку приложения CRUD RCP среднего размера и намереваюсь использовать шаблон MVP (презентатор представления модели).
Я понимаю, что основное различие между MVP и MVC заключается в том, что докладчик обновляет представление, а контроллер - нет.
Что я действительно не понимаю, так это то, у кого есть ссылка на что в этом паттерне. В одном уроке я прочитал, что в представлении есть переменная экземпляра презентатора (см.: http://www.logicdevelopment.net/blog/?p=16). Но докладчик также должен иметь ссылку на представление. Не так ли? Все ли это правильно?
Может ли кто-нибудь предоставить объяснения того, как типичное приложение MVP структурировано с точки зрения того, кому принадлежат ссылки на что?
код добавлен из вида:
button.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
// can we reference the presenter here? how?
}
});
Используя информацию из приведенной ниже ссылки, я придумал диаграмму ниже. Обратите внимание, что представление имеет ссылку на докладчика и наоборот (см. Вариант 1 здесь):
1 ответ
На самом деле, есть два разных вкуса MVP. Шаблон MVP был описан Фаулером в 2004 году, и он удалил его в 2006 году, разделив шаблон на контролирующий контроллер (sc) и пассивный просмотр (pv). В sc вид привязан к модели, а в pv нет, в pv вид меняется только непосредственно ведущим.
Мой ответ на вопрос: создает ли Presenter в Model-View-Presenter представления? есть еще некоторые детали.