В чем преимущество шаблона MVP (GWT) - PullRequest
5 голосов
/ 06 марта 2011

Я только что прочитал эту статью , и это меня сильно смутило.

Во-вторых, эта модель позволяет нам минимизировать использование GWTTestCase, который зависит от наличия браузера, и, для большей части нашего кода, писать облегченные (и быстрые) тесты JRE (для которых не требуется браузер). ). [1]

Это вся польза, которую я получаю, следуя этой схеме проектирования? Кажется, что делает код более сложным ... Вы используете этот шаблон?

Ответы [ 3 ]

8 голосов
/ 07 марта 2011

Я должен не согласиться, MVP делает код менее сложным, особенно в случае GWT. Если вы планируете проект GWT среднего и большого размера, то архитектура MVP - ваш основной выбор. Я предлагаю взглянуть как на GWT MVP (от Google), так и на gwt-platform (предложено KennethJ). Есть и другие реализации.

Основные преимущества MVP (я имею в виду модель MVP - не только GWT MVP):

  • четкое разделение GWT UI и бизнес логика; все на стороне клиента Java-код становится чрезвычайно общим с минимальной зависимостью от GWT реализация (в основном через интерфейсы). Это помогает тестам чрезвычайно, но это бесценно Преимущество дизайна пользовательского интерфейса само по себе.
  • повышается удобство обслуживания интерфейса практически из-за отсутствия зависимости от бизнеса логика
  • увеличивает количество общего кода между клиентом и сервером из-за ограниченные зависимости GWT

Другие дополнительные технологии, которые вы, вероятно, примете:

  • gwt-gin (реализация Google Guice на стороне клиента): gwtp делает это почти необходимым (или обязательным - я никогда не пробовал без него)
  • Guice (на стороне сервера) для согласованности с клиентским кодом, но технически не обязательный
  • тестовый макет (например, mockito) всегда полезен с MVP
  • GWT UIBinder - если вы не очень динамичны в дизайне пользовательского интерфейса
  • GWT EventBus - основной метод связи на стороне клиента в асинхронной среде, такой как AJAX / JavaScript
  • GWT-RPC через шаблон команды (диспетчер gwtp и / или RequestFactory)
0 голосов
/ 07 сентября 2012

Тот факт, что GWTTestCase не используется, довольно удивителен, особенно если вы разрабатываете на основе тестирования, но есть и другие замечательные преимущества, такие как упомянутый topchef. Это зависит от того, с какой «версией» MVP вы работаете. Я съеживаюсь, когда вижу людей, регистрирующих Presenter в качестве слушателя виджетов, отображаемых в представлении.

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

0 голосов
/ 06 марта 2011

преимущество по сравнению с чем?Если вы имеете в виду преимущество по сравнению со стандартным шаблоном MVC (общий шаблон для разработки пользовательского интерфейса), то да, я думаю, что это основная причина этого шаблона

GWTTestCases намного медленнее и громоздче, чем стандартные тесты Junit.Вы хотите протестировать логику с помощью стандартных сред тестирования Java и использовать GWTTestCase для тестирования только логики, специфичной для пользовательского интерфейса.

...