Показать сообщение отдельно
Старый 21.11.2011, 13:22
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 35  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Да и не было подвоха.

Насколько понял, если не брать это пример с get displayObject() в интерфейсе, я пишу код точто таким же макаром как и ты, только описываю другими словами.

а get displayObject() тебе претит использовать из-за нарушения инкапсуляции (по-моему несущественного).

Напоследок, как бы выглядело API, если бы был интерфейс IDisplayObject:
- DisplayObject реализует IDisplayObject
- DisplayObjectContainer принимает объекты IDisplayObject
- Реализовывать IDisplayObject может только наследник DisplayObject (иначе исключение или ошибка компилятора - не важно)
На первый взгляд смысл интерфейса теряется, но это не так, даже с этим ограничением гибкость увеличивается.
Например мы можем сказать, что менеджер принимает интерфейс IManageredDisplayObject extends IDisplayObject
Тогда мы можем реализовать через разные наследники DisplayObject, где-то удобнее это сделать, отнаследовавшись от TextField, а где-то - от Shape.
Ну и да, можно добавлять на сцену IManageredDisplayObject без приведения типов.