Регистрация: Jul 2009
Сообщений: 77
|
Спасибо за наводку, поищу информацию о message bus, для этого я и писал.
А на счёт вашего комментария, где "концептуально правильнее так", не согласен. Весь смысл в том что каждый принимает решения на своём уровне и не касается чужих дел. ScreenManager - управляет экраном, кнопки его не интересуют, Кнопка не может принимать решение нажаться ей или нет, ей думать неположено, она не знает о экранных режимах, она не знает зачем она нужна, у неё есть только имя. ButtonManager может её нажать или вообще отключить, и не конкретную кнопку, а кнопку с определёнными параметрами, потому что он не знает какие кнопки есть. MenuHolder нужен чтобы принимать сообщения от главного объекта, и спускать ниже - гланый объект не знает, что есть какие-то кнопки, они зарегистрированы в холдерах.
Смысл такого построения, насколько это возможно, изолировать объекты друг от друга. Тогда программа будет как мозаика, можно дабавить или убавить объекты, другие этого не заметят. Напимер, добавление новой кнопки в MenuHolder сведётся лишь к её добавлению в массив кнопок.
Последний раз редактировалось filepark; 29.03.2013 в 12:08.
|