Re[2]: MVC pattern программирования. Вопросы по идеологии.
От: Dimetrius Украина  
Дата: 04.07.05 19:34
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Я понимаю так.

_FR>
_FR>                  1 Модель 1
_FR>                 /          \
_FR>               оо            оо
_FR>        Контроллер 1<----->1 Вид

_FR>Модель:
_FR> Фцнкция:       содержит Данные.
_FR> Поля:          образно говоря, Массив обектов.
_FR> Методы:        Добавить, Удалить, Найти (*)
_FR> Особенность:   предоставляет (возможно, через Контроллер) Видам интерфейс для отлавливания событий изменений внутри себя.
_FR>                предоставляет (возможно, через Вид) Контроллерам интерфейс для изменения данных внутри себя.
 
_FR>Вид:
_FR>  Фцнкция:      Показывает в колонках свойства объектов, в строках - объекты.
_FR>  Поля:         ссылка на Модель, и, опять же, для примера, CurrencyManager к ней, который создаёт сама.
_FR>  Методы:       Выделить следующий, предыдущий, Удалить текущий, Войти в режим редактирования\добавления новой записи. (**)
_FR>  Особенность:  предоставляет Контроллеру интерфейс для отлавливания событий внутри себя и, возможно, доступ к Модели.
 
_FR>Контроллер:
_FR>  Фцнкция:      по событиям нажатия клавиатуры (DownArrow, LeftArrow, Ctrl+N) вызывает методы Вида (**) для навигации;
_FR>                по событиям нажатия клавиатуры (Enter, Esc) вызывает методы Модели для добавления\изменения данных (*)
_FR>  Поля:         ссылка на Модель и ссылка на Вид.
_FR>



На мой взгляд все несколько иначе: вид не должен имеет ссылку на модель, как вы указали, точно также модель ничего не должна знает о текущем виде. Модель и вид посылают сообщения друг другу только посредством интерфейса контроллера. Т.е. только интерфейс контроллера обеспечивает взаимодействие модели и вида. Таким образом, легко реализуется заменяемость видов и контроллеров.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.