Тема: Хорошее MVC
Показать сообщение отдельно
Старый 09.06.2011, 22:14
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 320  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Цитата:
Вот в этом месте может же быть сеттер? Ведь это рассылка точно не многоадресная, и не может предназначаться нескольким модулям, значит событийную модель обмена можно не использовать здесь.
Или "уж если все так, то и этот пусть будет как все"? Или, просто, через фреймворк по другому не получится?

А... или это, чтобы удерживать уровень абстракции?
Это просто удобно. Да, у родительского контроллера есть ссылки на дочерние. Но нотификация может предназначаться не дочернему а внучатому какому-то, или еще глубже. Во избежание танцев с бубном "потом" вокруг внуков и правнуков (на которые у главного контроллера ссылок может и не быть) - делаю нотификацию "сейчас".

Та и как Котяра говорит проще ведь сделать список нотификация - хентлер, чем помнить адреса каждого внука и дергать напрямую детей сеттерами.

А вдруг я в дитяти поменяю внутреннею структуру и этого сеттера либо вообще не станет, либо начнет устанавливать что-то другое? - это еще один аргумент в пользу нотификаций-событий.

И не путайте нотификации с событиями. Нотификация это глобальная муть, там своя схема, вникал как-то, но на пальцах долго объяснять. Есть глобальный контейнер в котором регистрируются все контроллеры, и эти контроллеры говорят глобальному контейнеру какие нотификации им удобнее слушать. А контейнер потом получает все нотификации и растусовывает по тем кто на них подписывался.

Т.е. никаких ссылок друг на друга не надо чтоб подписаться на нотификации. Контролер даже может не знать кто ее послал, просто есть факт - получена нотификация - ее надо обработать, всё.
__________________
Кто к нам с чем для чего - тот у нас того от того.