![]() |
Класс задает рид-онли свойство другому классу?
Как вы решаете такую проблему? Скажем, существуют 2 класса, назовем их Parent и Child. Parent может создавать Child'ов и после создания должен задать им свойство parent со ссылкой на самого себя, доступное только для чтения.
Пока мои варианты только такие: диспатчить ребенку событие о том, что он добавлен в список детей родителя. - недостатки: Если обработчик этого события оставить протектед, его можно будет переписать в детях наследующихся от Child'a - т.е. не надежно. Если обработчик сделать приватным, то получится одна дополнительная функция :) создать у ребенка интернал метод, который будет задавать все нужные свойства. - недостатки: Не знаю, как-то некрасиво :) да и не супер надежно в смысле если в дальнейшем наследоваться от Child'a. статическое свойство у родителя, через которое можно получить ссылку на родителя создавшего этого конкретного ребенка... - недостаки: Ну выглядит еще хуже, чем оба предыдущих варианта... как бы всерьез я это не рассматриваю, просто добавил потому что технически такое тоже возможно. Вобщем, интересует ваше мнение, что вы делаете в такой ситуации? |
первое
|
Первый способ мне кажется наиболее приемлемым.
Защитить обработчик событий от изменений на мой взгляд можно если сделать этот обработчик публичным методом другого финального интернал класса, например IntenalEventController. P.S: не уверен, конечно, что это правильно. |
alekslitvinenk. Кхм. Тупо не понял Вашей мысли.
Этот велисипед уже изобретен. Имя ему DisplayList. |
Скажите, при чем тут вобще DisplayList ?
Отношения родитель - ребенок могут присутствовать в чем угодно, а не только в иерархии отображаемых объектов |
Ну так я про то же самое. Пускай это будет AnIerarchyList.
|
Цитата:
|
Как Вам будет угодно =)
"сделать этот обработчик публичным методом другого финального интернал класса". Покажите лучше это чудо. |
internal лучше. надёжнее и быстрее
|
Цитата:
Код AS3:
|
| Часовой пояс GMT +4, время: 01:18. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.