Re: MVC pattern программирования. Вопросы по идеологии.
От: _FRED_ Черногория
Дата: 30.06.05 11:55
Оценка: 2 (1) +1
Здравствуйте, <Аноним>, Вы писали:

А>Здравствуйте. Возникли следущие вопросы по MVC.


А>1. Есть объект типа "набор объектов", что хранить у него в Model? Model'ы объектов, или их контроллеры.


А>2. Где надо хранить функции работы с моделью? Функции типа: добавить в набор еще один объект, удалить из набора объект, etc. Если в контроллере, то как быть с private данными Model'и, а если еще и в Model'е то, ИМХО, переусложнение.


Я понимаю так.
                  1 Модель 1
                 /          \
               оо            оо
        Контроллер 1<----->1 Вид

Модель:
 Фцнкция:       содержит Данные.
 Поля:          образно говоря, Массив обектов.
 Методы:        Добавить, Удалить, Найти (*)
 Особенность:   предоставляет (возможно, через Контроллер) Видам интерфейс для отлавливания событий изменений внутри себя.
                предоставляет (возможно, через Вид) Контроллерам интерфейс для изменения данных внутри себя.
 
Вид:
  Фцнкция:      Показывает в колонках свойства объектов, в строках - объекты.
  Поля:         ссылка на Модель, и, опять же, для примера, CurrencyManager к ней, который создаёт сама.
  Методы:       Выделить следующий, предыдущий, Удалить текущий, Войти в режим редактирования\добавления новой записи. (**)
  Особенность:  предоставляет Контроллеру интерфейс для отлавливания событий внутри себя и, возможно, доступ к Модели.
 
Контроллер:
  Фцнкция:      по событиям нажатия клавиатуры (DownArrow, LeftArrow, Ctrl+N) вызывает методы Вида (**) для навигации;
                по событиям нажатия клавиатуры (Enter, Esc) вызывает методы Модели для добавления\изменения данных (*)
  Поля:         ссылка на Модель и ссылка на Вид.
<< RSDN@Home 1.1.4 beta 7 rev. 500 >> =02:44= [Windows XP — 5.1.2600.0] {Build at .NET 1.1.4322.2032}
under «*none*»
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.