Я ищу руководство по архитектуре GWT - когда использовать автономные виджеты против MVP / Активности / Места.
Фон
После прочтения документации Google и поиска Stackoverflow,Проект gwt-examples предоставляет лучшую иллюстрацию к этому вопросу: http://code.google.com/p/gwt-examples/source/browse/trunk_2012/DemoGwtEditor/src/com/gonevertical/client/?r=3138#client%2Fviews
Приложение разделено на сильно разделенные представления, каждое представление соответствует одноранговому узлу DOM.Действия и места используются для управления логикой / RPC и навигацией для данного представления.Хотя это и неточно, для краткости я буду называть этот шаблон MVP.
Виджеты не соответствуют этому шаблону и содержат как вызовы view, так и вызовы логики / RPC.
Context
В контексте этого вопроса я имею в виду сложное приложение GWT, использующее TabLayoutPanel для создания отдельных «экранов».Каждая вкладка / экран в целом относится к пользовательской активности.Mint.com является хорошим примером такого интерфейса: вкладка панели инструментов, вкладка транзакций, вкладка бюджетов, вкладка трендов и т. Д. Каждая вкладка построена из ряда подкомпонентов : диаграмма сселекторы, селектор отчетов, таблица транзакций и т. д.
Подкомпонент, такой как таблица транзакций, вероятно, представляет собой совокупность нескольких объектов GWT - например, таблицу с парой кнопок.Google doco показывает этот вид подкомпонента как разложенный на MVP.
Допущения - виджеты против MVP
Обработка подкомпонентов с помощью MVP означает:
- очень большие классы представления и активности / докладчика для каждой вкладки или
- вложенность MVP и набор файлов (по 5 на каждый компонент)
С другой стороны, подкомпоненты как виджеты означают:
- очень легкую структуру MVP только для управления историей навигации по вкладкам;вряд ли оно того стоит
- без разъединения (поэтому трудности с модульным тестированием и переключением видов)
Вопросы
- Верны ли эти предположения?
- Когда использовать пользовательские, составные виджеты поверх не связанных видов / MVP (или наоборот)?