Разработка приложения на основе 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 представления? есть еще некоторые детали.

Другие вопросы по тегам