Для чего нужен контроллер в WCSF?
Я все еще пытаюсь обернуть свой мозг вокруг MVP. Для чего мне использовать класс контроллера? Это где я получаю доступ к ресурсам данных?
3 ответа
Контроллер должен воздействовать на модель, возможно, заполняя модель через вызов уровня обслуживания к базе данных. Обычно с запросами из представления контроллер выполняет действия с моделью.
Представление - это презентация на экране.
Presenter управляет потоком между представлением и контроллером.
Причина разделения презентаторов и контроллеров может заключаться в том, что вы можете повторно использовать определенный контроллер с другим презентатором и т. Д.
Контроллер в примерах WCSF от MS хранит данные, совместно используемые несколькими докладчиками в модуле, предоставляет методы для обработки этих общих данных и управления общими данными в веб-сеансе. Например, список объектов денежных переводов, используемых презентатором NewTransfer и презентатором TransferHistory.
Данные, которые являются уникальными только для одного докладчика, могут быть доступны через контроллер, но это не обязательно. В этом случае докладчик может управлять данными и доступом к данным веб-сеанса.
Это моя интерпретация после рассмотрения нескольких примеров за пару лет, например
- пример GlobalBanking в исходном файле WCSF2010. Его можно найти по http://webclientguidance.codeplex.com/wikipage?title=Web%20Client%20Software%20Factory&referringTitle=Home.
- один здесь: http://msdn.microsoft.com/en-us/library/ff650240.aspx. Внизу упоминается контроллер.
Я не уверен, чье определение "контроллера" они используют, но оно не такое, как в MVC.
По моему мнению, докладчик не должен быть связан с технологией пользовательского интерфейса и должен иметь непосредственное отношение к уровню услуг модели. В приложении должен быть только один контроллер, который может быть тесно связан с технологией пользовательского интерфейса. Навигация по страницам может быть абстрагирована в контроллере. Я чувствую, что шаблон MVP-Controller на основе WCSF - это небольшое изменение исходного шаблона MVP.
Позвольте мне предложить, чтобы презентатор был реализован для повторного использования, а контроллеры - нет.