![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: Aug 2009
Сообщений: 19
|
Я хочу, чтобы некий класс A реализовывал интерфейс I и был Sprite.
У А будет много подклассов А1 А2 А3 (список расширяется), реализующих функции из I, при этом есть класс-манагер M, который эти A1 A2 ... создает в изобилии по требованию. Хотелось бы сделать поизящнее. Первое что напрашивается: - написать интерфейс I - A extends Sprite implements I - А1 extends A, А2 extends A, А3 extends A etc - манагер M имеет переменную типа A и создает одного из A1-A2-A3 в зависимости от вызова и рулит какое-то время Что не нравится: придется в A прописать пустые функци из I и в A1, A2, A3 постоянно override их, как-то не лежит душа. И вообще в этой схеме непонятно зачем нужен I, можно сразу прописать функции в A и override-ть их в А1 А2 А3, А в таком случае выполняет функцию абстрактного класса, для чего в AS3 интерфейсы и есть. Если не писать интерфейс I и A, а напрямую делать A1 A2 A3, то это вообще паршиво - если программер делающий A4 A5 пропустит нужные функции, будет плохо. Если не делать A, а напрямую реализовывать I в А1 А2 А3 А1 extends Sprite implements I А2 extends Sprite implements I то не совсем понятно, как проверить в M соответствие типа, если переменная для экземпляра будет типа Sprite, то нет гарантии, что в A5 реализовали I, если же переменная будет типа I, то для оперирования с этой переменной как со Sprite придется постоянно приводить тип, что тоже неизяЩно Как бы тут поступить поООПшней? |
![]() |
Часовой пояс GMT +4, время: 04:14. |
|
|
« Предыдущая тема | Следующая тема » |
|
|