MVP против MVP2 - Лучшие практики для запуска теста в JVM - PullRequest
1 голос
/ 27 февраля 2012

В MVP View предлагает метод получения для интерфейсов виджетов - как hasClickHandler aso.- так что докладчик может получить доступ к этим ClickHandlers, чтобы добавить слушателей и установить значения.

Это делает вид действительно тупым.

Если вы хотите протестировать mvp-докладчик, вам нужно смоделировать вид и создать макеты для кнопок, чтобы имитировать нажатие кнопки.

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

Итак, каковы плюсы и минусы MVP и MVP2?

Реально ли написать макеты для каждого виджета, чтобы создать хорошие макеты вида?Отношение MVP к MVC, вы знаете, что входит в Presenter, View и Model.Я не совсем уверен, если MVP2 делает это так же ясно, как MVP.

Каков ваш опыт?

1 Ответ

2 голосов
/ 28 февраля 2012

Я использовал оба подхода, и я думаю, что есть два преимущества использования шаблона MVP2 (просмотр методов вызовов в докладчике через интерфейс докладчика):

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

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

...