Шаблоны презентаций для использования с Ext - PullRequest
8 голосов
/ 24 августа 2010

Как вы думаете, какие шаблоны презентаций Ext одобряют или успешно использовали для достижения высокой тестируемости , а также удобства обслуживания?

Поскольку экземпляры компонентов Ext обычно тесно связаны с состоянием и некоторой логикой представления (например, проверка формата для текстовых полей), Пассивное представление не является естественным соответствием. Supervising Presenter похоже, что он может работать (и я безболезненно использовал его в одном случае). Как насчет пригодности Презентационная модель ? Есть другие?

Хотя этот вопрос специально для Ext, он может применяться к аналогичным средам, таким как SmartClient и даже RIA технологиям, таким как Flex . Таким образом, если у вас есть опыт использования шаблонов из первых рук с любыми другими технологиями веб-интерфейса, ваш вклад все равно будет оценен.

Ответы [ 2 ]

5 голосов
/ 25 августа 2010

Если подумать о шаблонах представления, это отличная цитата:

Отделение кода пользовательского интерфейса от всего остального является ключевым принципом в хорошо спроектированном программном обеспечении.Но за ним не всегда легко следить, и это приводит к большей абстракции в приложении, которое трудно понять.Довольно много шаблонов проектирования пытаются нацелиться на этот сценарий: MVC, MVP, Supervising Controller, Passive View, PresentationModel, Model-View-ViewModel и т. Д. Причина такого разнообразия шаблонов заключается в том, что эта проблемная область слишком велика, чтобы ее можно было решить с помощьюодно общее решение.Однако у каждого UI Framework есть свои уникальные характеристики, и поэтому они работают лучше с некоторыми шаблонами, чем с другими.

Что касается Ext, то, на мой взгляд, самым близким шаблоном будет Model-View.-Viewmodel, однако этот шаблон по своей природе сложно кодировать, в то же время поддерживая разделение ключевых принципов (состояние, представление, модель).

Тем не менее, согласно приведенной выше цитате, каждый шаблон пытается решить / разделить/ упростить проблему / ситуацию, часто слишком сложную для отдельного приложения или которая часто терпит неудачу, когда вы пытаетесь довести ее до абсолютного.Таким образом, подумайте о том, чтобы получить «наилучшее соответствие», а не абсолют при разработке приложений для сопоставления с образцом.

И помните:

Причина такого разнообразия шаблонов заключается в том, чтообласть проблемы слишком велика, чтобы ее можно было решить одним общим решением.

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

2 голосов
/ 03 декабря 2012

2 года прошло с тех пор, как был задан этот вопрос, и теперь Ext-JS 4 имеет встроенную реализацию шаблона MVC. Однако вместо MVP (который я предпочитаю) он предпочитает прямой контроллер, потому что представления привязываются к моделям через магазины.

Вот документы на контроллере:

http://docs.sencha.com/ext-js/4-1/#!/api/Ext.app.Controller

Тем не менее его можно заставить действовать больше как контролирующий контроллер. Одним из приятных аспектов Ext-JS является способность глобальных прикладных объектов действовать как шина событий для обработки взаимодействия контроллера с контроллером. Смотрите этот пост о том, как это сделать:

http://www.sencha.com/forum/showthread.php?176495-How-to-listen-for-custom-events-fired-in-application

Конечно, полное объяснение всех этих паттернов можно найти здесь:

http://martinfowler.com/eaaDev/uiArchs.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...