Я пытаюсь изучить шаблон MVC, но в каждом месте говорят что-то другое. Итак, теперь я не знаю, что такое истинный MVC.
Итак, я предполагаю, что это самый чистый MVC:
- Модель - это только данные и уведомляет об изменениях данных.
- Просмотр читает сообщения Модель, чтобы обновить представление.
- Контроллер читает пользовательский ввод Вид и изменяет модель согласно.
Реализация
- Модель не знает никого.
- Просмотр знает Модель.
- Контроллер знает как Вид, так и Модель.
псевдокод:
/* Model */
class Color{
color = blue;
setColor(color);
notifyUpdate();
}
/* View */
class ColorPicker(model){
model.register(update);
update(){
this.colorToExhibit = model.color;
}
}
/* Controller */
class Colorize(view, model){
view.register(update);
update(color){
model.setColor(color);
}
}
Некоторые вопросы:
- Правильно ли это?
- Я не понимаю, почему Вид не может напрямую изменить Модель, но через Контроллер.
- Предположим, что анимация выполняется после действия. Кто должен обрабатывать эту анимацию: модель, представление или контроллер? Также: логика анимации является частью модели, представления или контроллера? Подробнее: предположим покерную игру. После того, как пользователь выберет действие (например, "Поднять" ), система должна воспроизвести анимацию (скажем, чипы, идущие от плеера до стола). Как я могу увидеть этот покерный пример (с анимацией) как MVC? Можете ли вы объяснить и дать псевдокод об этом?
Спасибо.