StockTrader RI> Контроллеры, Предъявители, WTF?

Я в настоящее время изучаю, как сделать усовершенствованное использование WPF через Призму (Составной WPF) проектом.

Я смотрю много видео и примеров и демонстрационное приложение, которое StockTraderRI заставляет меня задать этому вопросу:

Какова точная роль каждой следующей части?

  • SomethingService: хорошо, это - что-то для управления данными
  • SomethingView: хорошо, это - то, что отображено
  • SomethingPresentationModel: хорошо, это содержит данные и команды для представления для привязки с (эквивалентный ViewModel).
  • SomethingPresenter: Я действительно не понимаю, что это - использование
  • SomethingController: не понимайте также

Я видел, что Предъявитель и Контроллер не необходимы, но я хотел бы понять, почему они здесь. Кто-то может сказать мне их роль и когда использовать их?

5
задан John Saunders 1 March 2010 в 10:04
поделиться

2 ответа

У меня была точно такая же проблема , когда я впервые прошел через Prism.

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

Например, Presenter будет реагировать на команду, которая приводит к отключению кнопки в представлении. Контроллер будет отвечать на команду, которая приводит к полному изменению View Presenter )) или, возможно, к загрузке другого View / Presenter в другом регионе. в оболочке модуля.

Изменить: Что касается того, когда их использовать, вы можете полностью пропустить Контроллер , если вам не нужна оркестровка, упомянутая выше. В простейшем приложении будет просто:

  • Модуль : регистрирует представление / презентатор в Регион
  • Презентатор : отвечает на команды из представления и изменяет ViewModel ].
  • ViewModel : адаптер между Presenter и View , реализующий INotifyPropertyChanged
  • View : привязывается к ViewModel и отображает Пользовательский интерфейс

Редактировать: Что касается Presenter vs ViewModel, большая часть вашей логики должна быть в вашем Presenter. Думайте о вашей ViewModel как о размещении логики для вашего представления, а Presenter как о последствиях взаимодействия с представлением.

Например, пользователь нажимает кнопку «Поиск» в вашем просмотре . Это вызывает ICommand , которая обрабатывается вашим Presenter . Presenter начинает поиск и устанавливает свойство ViewModel.IsSearching , которое запускает уведомление PropertyChanged для CanSearch . CanSearch - это свойство только для чтения, основанное на нескольких других свойствах (например, IsSearchEnabled &&! IsSearching ). Кнопка «Поиск» в представлении имеет свойство Включено , привязанное к CanSearch .

7
ответ дан 14 December 2019 в 08:48
поделиться

На мой взгляд, здесь под Контроллером понимается Контроллер приложений

0
ответ дан 14 December 2019 в 08:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: