Показать сообщение отдельно
Старый 06.01.2016, 21:30
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 23  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
"Можно" по-разному, а "нужно" — создавать детей в том классе, который ими управляет, в котором логика управления жизнью этих объектов. Какой смысл создавать объекты в одном классе и помещать их в его Список Отображения, а управлять ими из другого?
Есть еще другой вариант "взгляда" на иерархию, это концепция не "родители и дети", а "инструмент". Кнопка и Звезда у Вас это инструменты для решения какой то задачи класса В, который в свою очередь — инструмент класса А. То есть А создает В, чтобы тот выполнял какую-то определенную задачу, функцию. Создатель знает, какую именно и для чего, и что делать с событиями и данными, поступающими от экземпляра В. Знает, что они означают и на что влияют в текущем контексте задачи. Сам В этого не знает, этого контекста. У него есть заложенная в него ответственность — создать то-то и то-то, отобразить, слушать события от своих детей-инструментов и что-то важное диспатчить событиями наверх классу А. Для решения этой своей задачки он создает свои инструменты — кнопки и прочее. Кнопки, на самом деле, тоже создают в себе экземпляры графики, картинки или векторные шейпы, и тоже слушают нажатия на них и прочее. Уровень ответственности все ниже и ниже, чем дальше мы уходим от центра логики приложения — Документ-класса — тем меньше знают о происходящем инструменты. Конечный шейп или картиночка в кнопке уже вообще ничего не делает и никакого кода не содержит, кнопка только слушает мышиные события над собой и показывает/скрывает состояния (картинки), В слушает нажатия на кнопки и в зависимости от них что-то посылает классу А.
Важный момент Иерархии — объекты одного уровня не могут приказывать что-то друг другу в обход более старшего. Это он, старший, знает, зачем вообще они живут и что должны делать. Каждый воспитывает только своих детей и несет ответственность только за них.
__________________
Reality.getBounds(this);