|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ну вообще-то Контроллер не контролёр в троллейбусе, чтобы "дергать кого нужно".
Контроллер это микросхема, обеспечивающая перевод сигналов датчиков на понятный системе язык. Контроллер клавиатуры определяет, какие клавиши нажаты/отпущены и извещает об этом систему. Контроллер мыши определяет, в каком направлении мышь двигается и переводит это в числа в системе координат. Ни тот ни другой не работает "в обратную сторону": компьютер не может заставить ползать по столу мышку, а клавиатуру — нажимать клавиши. Здесь было уже достаточно холиваров на тему MVC и роль контроллера и да, я конечно слышал о таких схемах, где контроллер берет на себя и связь от Модели к Вью. Но в классическом кошерном MVC такого нет, ибо это бессмыслица. Вы в любом случае пишете Вью для конкретной модели, потому что задача Вью — отображать свойства Модели. Вью может быть не привязана к Модели только в том случае, если Вью это какой-то маленький модуль GUI для отображения одного свойства (например, прогрессбар). Ему неважно, откуда это свойство приходит. Поэтому никаким "Вью" он попросту не является и может быть использован безо всякого MVC где угодно. В MVC же Вью подписывается на события Модели и сама забирает нужные ей свойства, для этого не нужен Контроллер. Вью имеет ссылку на Модель, потому что она заточена показывать свойства этой Модели. Контроллер же нужен именно для разделения В и М в плане управления Моделью, поскольку Вью является не только изображением на мониторе, но и устройством ввода — клавиатурой и мышью, или тач-скрином. То есть — источником данных для Модели, и управляющих запросов пользователя. И вот этот хаос необходимо контролировать и переводить на понятный Модели язык. Контроллер обеспечивает логику взаимодействия и безопасность данных Модели, не позволяя Вьюхе дергать ее методы напрямую.
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Oct 2015
Сообщений: 32
|
Понятно, спасибо.
__________________
Если вы не можете объяснить что-то шестилетнему ребенку, вы сами этого не понимаете. (Альберт Эйнштейн) |
Часовой пояс GMT +4, время: 12:11. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|