MVP: вопросы о роли ведущего - PullRequest
3 голосов
/ 29 марта 2012

Я не уверен на 100% в роли докладчика по сравнению с моделью в модели MVP.Из того, что я понимаю, докладчик хранит ссылки как на модели, так и на представления, наблюдает за ними и сообщает об изменениях в модели в представление и наоборот.

Но это все, что делает докладчик?Например, должен ли код проверки для ввода пользователя быть представлен в Presenter?

И тогда возникает проблема с диалоговыми окнами.Должны ли они иметь своего собственного Presenter или они должны использовать Presenter своего основного окна?

1 Ответ

3 голосов
/ 30 марта 2012

Правильно, докладчик хранит ссылки как на представление, так и на модель и отвечает за их создание и посредничество между ними (степень которых зависит от используемого конкретного шаблона)

Презентатор содержит бизнес-логику пользовательского интерфейса, например, нажав кнопку сохранения

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

Ответственность за модели в триаде MVP заключается именно в том, чтобы хранить информацию для этого представления. Может быть, это специализированный класс для этой цели или класс из вашей доменной модели.

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

Надеюсь, это поможет

...