![]() |
|
||||||||||
|
|
|
|||||
|
Да и не было подвоха.
Насколько понял, если не брать это пример с get displayObject() в интерфейсе, я пишу код точто таким же макаром как и ты, только описываю другими словами. а get displayObject() тебе претит использовать из-за нарушения инкапсуляции (по-моему несущественного). Напоследок, как бы выглядело API, если бы был интерфейс IDisplayObject: - DisplayObject реализует IDisplayObject - DisplayObjectContainer принимает объекты IDisplayObject - Реализовывать IDisplayObject может только наследник DisplayObject (иначе исключение или ошибка компилятора - не важно) На первый взгляд смысл интерфейса теряется, но это не так, даже с этим ограничением гибкость увеличивается. Например мы можем сказать, что менеджер принимает интерфейс IManageredDisplayObject extends IDisplayObject Тогда мы можем реализовать через разные наследники DisplayObject, где-то удобнее это сделать, отнаследовавшись от TextField, а где-то - от Shape. Ну и да, можно добавлять на сцену IManageredDisplayObject без приведения типов. |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:34. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|