
21.11.2011, 13:22
|
|
блогер
Регистрация: Feb 2006
Сообщений: 1,474
|
Да и не было подвоха.
Насколько понял, если не брать это пример с get displayObject() в интерфейсе, я пишу код точто таким же макаром как и ты, только описываю другими словами.
а get displayObject() тебе претит использовать из-за нарушения инкапсуляции (по-моему несущественного).
Напоследок, как бы выглядело API, если бы был интерфейс IDisplayObject:
- DisplayObject реализует IDisplayObject
- DisplayObjectContainer принимает объекты IDisplayObject
- Реализовывать IDisplayObject может только наследник DisplayObject (иначе исключение или ошибка компилятора - не важно)
На первый взгляд смысл интерфейса теряется, но это не так, даже с этим ограничением гибкость увеличивается.
Например мы можем сказать, что менеджер принимает интерфейс IManageredDisplayObject extends IDisplayObject
Тогда мы можем реализовать через разные наследники DisplayObject, где-то удобнее это сделать, отнаследовавшись от TextField, а где-то - от Shape.
Ну и да, можно добавлять на сцену IManageredDisplayObject без приведения типов.
|