Показаны сообщения с ярлыком MVC. Показать все сообщения
Показаны сообщения с ярлыком MVC. Показать все сообщения
Что такое MVC
В последнее время я много общался об MVC (Model-View-Controller, «модель-представление-контроллер») с некоторым количеством программистов, занимающих позиции разного уровня в софтверных компаниях. Встретил много непонимания и теперь хочу поделиться соображениями по этому вопросу. MVC — штука очень абстрактная, и это основная причина недоразумения — недооценённая степень абстрактности. Она проявляется в следующем: программист, как правило, работает в рамках одной парадигмы (ООП наше всё) и смотрит на мир сквозь неё. И когда слышит, например, «контроллер» — представляет класс. А это частность — класс, или не класс, или совокупность объектов или процедур, это значения не имеет. Ещё бывает понимание искажено конкретным MVC-фреймворком. Попробую на это повлиять.
Паттерны проектирования в схеме MVC в языке Smalltalk
В Smalltalk-80 для построения интерфейсов пользователя применяется тройка классов модель/вид/контроллер (Model/View/Controller - MVC).
MVC состоит из объектов трех видов:
- Модель - это объект приложения.
- Вид - экранное представление.
- Контроллер описывает, как интерфейс реагирует на управляющие воздействия пользователя.
МVC отделяет вид от модели, устанавливая между ними протокол взаимодействия «подписка/оповещение». Вид должен гарантировать, что внешнее представление отражает состояние модели. При каждом изменении внутренних данных модель оповещает все зависящие от нее виды, в результате чего вид обновляет себя. Такой подход позволяет присоединить к одной модели несколько видов, обеспечив тем самым различные представления. Можно создать новый вид, не переписывая модель.
Подписаться на:
Сообщения (Atom)