Цитата:
Сообщение от Psycho Tiger
А мне это совсем понятно.
Что такое DisplayObject? Объект, который можно добавить в дисплай-лист и визуализировать средствами рендера у флеш плеера.
Любой DisplayObject это IDisplayObject. Но и любой IDisplayObject это DisplayObject. Зачем делать интерфейс? Незачем. Он лишний. Только чтобы в исключительной ситуации наследовать интерфейсы, вместо использования "as".
|
Теперь понял.
отсутсвтие интерфейса - это такая защита от попыток "имплементировать" нативные функции.
Но зачем обобщать её, и говорить что везде, где с объектом надо что-то сделать непременно нужно использовать только наследники базовых классов? Так же не получится. Если мой класс смог реализовать мой(ненативынй) интерфейс - значит его можно передать в качестве параметра.
Цитата:
|
Насчет "замечательно" — сомнительно, т.к. дает возможность легко сломать компонент (например по незнанию или по неосторожности). Придется как в spark контейнерах перекрывать addChild / removeChild и т.д., в случаях если используются собственные методы добавления детей.
|
Никто не говорил, что оно идеальное. Все как всегда зависит от конкретной ситуации.
Цитата:
|
Именно в сознании программиста IComponent является DisplayObject
|
Не хотите - не расширяйте. Просто делаем компонент - не дисплей-объект и у него поле displayObject, которое добавляем. Или отодрать displayObject от компонента? Да ну, это какой-то уожос получается.
Цитата:
|
Интерфейс говорит "ЯМогуПожаритьКартошку", но никак не "МеняМожноЖаритьКакКартошку"
|
Медитирую...
Ухожу из дискуссии, пока медитация не даст результатов (пока не особо)