Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Класс задает рид-онли свойство другому классу? (http://www.flasher.ru/forum/showthread.php?t=125773)

wvxvw 01.06.2009 17:12

Класс задает рид-онли свойство другому классу?
 
Как вы решаете такую проблему? Скажем, существуют 2 класса, назовем их Parent и Child. Parent может создавать Child'ов и после создания должен задать им свойство parent со ссылкой на самого себя, доступное только для чтения.

Пока мои варианты только такие:
диспатчить ребенку событие о том, что он добавлен в список детей родителя.
- недостатки: Если обработчик этого события оставить протектед, его можно будет переписать в детях наследующихся от Child'a - т.е. не надежно. Если обработчик сделать приватным, то получится одна дополнительная функция :)

создать у ребенка интернал метод, который будет задавать все нужные свойства.
- недостатки: Не знаю, как-то некрасиво :) да и не супер надежно в смысле если в дальнейшем наследоваться от Child'a.

статическое свойство у родителя, через которое можно получить ссылку на родителя создавшего этого конкретного ребенка...
- недостаки: Ну выглядит еще хуже, чем оба предыдущих варианта... как бы всерьез я это не рассматриваю, просто добавил потому что технически такое тоже возможно.

Вобщем, интересует ваше мнение, что вы делаете в такой ситуации?

dimarik 01.06.2009 17:15

первое

alekslitvinenk 01.06.2009 17:29

Первый способ мне кажется наиболее приемлемым.
Защитить обработчик событий от изменений на мой взгляд можно если сделать этот обработчик публичным методом другого финального интернал класса, например IntenalEventController.
P.S: не уверен, конечно, что это правильно.

dimarik 01.06.2009 17:46

alekslitvinenk. Кхм. Тупо не понял Вашей мысли.

Этот велисипед уже изобретен. Имя ему DisplayList.

alekslitvinenk 01.06.2009 17:50

Скажите, при чем тут вобще DisplayList ?
Отношения родитель - ребенок могут присутствовать в чем угодно, а не только в иерархии отображаемых объектов

dimarik 01.06.2009 17:53

Ну так я про то же самое. Пускай это будет AnIerarchyList.

alekslitvinenk 01.06.2009 18:01

Цитата:

Сообщение от dimarik (Сообщение 824914)
Ну так я про то же самое. Пускай это будет AnIerarchyList.

тогда уж HierarchyList

dimarik 01.06.2009 18:06

Как Вам будет угодно =)

"сделать этот обработчик публичным методом другого финального интернал класса".
Покажите лучше это чудо.

BlooDHounD 01.06.2009 18:09

internal лучше. надёжнее и быстрее

alekslitvinenk 01.06.2009 18:36

Цитата:

Покажите лучше это чудо
Показать что ? Как объявляется финальный интернал класс ?
Код AS3:

package{
        internal final class InternalEventController{
.....................................................................
            }
}



Часовой пояс GMT +4, время: 01:18.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.