Re[4]: Обобщенный Model-View-Controller
От: IB Австрия http://rsdn.ru
Дата: 26.03.07 08:33
Оценка:
Здравствуйте, Al_Shargorodsky, Вы писали:

A_S>Всетаки ViewModel это не совсем контроллер-презентер.

Да, не совсем — это только часть контроллера.

A_S> Я бы сказал так — ViewModel можно привести к виду презентера, но это только частный случай.

Не совсем так.
В MVP Presenter (контроллер) выполняет, с одной стороны роль медиатора для модели, а с другой управляет набором View.
В случае WPF ребята эти две роли разделили, в результате Presenter распался на две части: DataModel — медиатор между моделью и View, ModelView — управляет View. Модель же и View остались неизменными. Таким образом, паттерн распался на 4 компонента — Model, DataModel, ModelView и View.
Они сами об этом и пишут: "DataModel is responsible for exposing data in a way that is easily consumable by WPF. All of its public APIs must be called on the UI thread only" Иными словами, роль DataModel в том, чтобы представить данные(Model) в том виде, в котором они удобны для WPF, то есть классическое применение паттерна медиатор.
Касательно ViewModel — "A ViewModel is a model for a view in the application (duh!). It exposes data relevant to the view and exposes the behaviors for the views, usually with Commands"

A_S> public class Model : INotifyPropertyChanged

Если Model — это по прежнему модель, то так делать нельзя. Модель по определению ничего не знает о контроллере и его интерфейсах, а INotifyPropertyChanged — это именно интерфейс контроллера, точнее медиатора для View, а не модели. А у одной модели может быть несколько Презентеров.

A_S> Класс Model здесь — это и ViewModel и DataModel одновременно.

Тогда Model переходит в разряд презентеров.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.