![]() |
|
||||||||||
|
|||||
|
Зачем? Например, я прекрасно понимаю, что методы "умереть", "переместится в" и "показать широченную улыбку" могут быть у классов главного героя, врага и неприметного старичка на заднем фоне, но я не могу найти интерфейсам лучшей практики, нежели создать эти методы 2-умя кнопками в каком нибудь редакторе коде, вместо набивания их заново вручную.
Посвятите новичка, зачем они нужны?)
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Ну, например, если функции программера-кодера и архитектора приложения разделены. Архитектор приложения как раз и будет заниматься созданием интерфейсов. Но такой подход актуален, в основном, для крупных приложений.
|
|
|||||
|
.
|
Экземпляр приобретает тип интерфейса.
var movable:IMovable = AFactory.construct(1); movable.move(); // Утка полетела movable = AFactory.construct(2); movable.move(); // Собачка попрыгала class AFactory { public static function construct(value:uint):IMovable { switch (value) { case 1: return new Duck(); break; case 2: return new Dog(); break; } } } interface IMovable { function move():void; } class Duck implements IMovable { public function move():void { this.fly(); } } class Dog implements IMovable { public function move():void { this.jump(); } } Последний раз редактировалось dimarik; 21.09.2009 в 21:48. |
|
|||||
|
Посмотри на иерархию наследования, где в ней расположен класс BitmapData и DisplayObject. Метод BitmapData.draw() может принимать экземпляры обоих этих классов. Как это реализовать без интерфейса IBitmapDrawable? Передавать Object - не выход. Интерфейс связывает два узла в дереве, которые расположены на разных ветвях (хотя и не обязательно на разных).
Последний раз редактировалось MrPoma; 21.09.2009 в 18:55. |
|
|||||
|
Ммм, спасибо.
Тогда назревает другой, очевидный вопрос - а стоит ли использовать интерфейсы если в логике приложения можно легко обойтись без этого? Ирония, но только что попал в ситуацию, когда без интерфейсов обойтись было бы сложно.) Огромное спасибо dimarik`у.
__________________
Тут мужик танцует и поёт про флэш Последний раз редактировалось Psycho Tiger; 21.09.2009 в 20:35. |
|
|||||
|
Modus ponens
|
Если по-английски читать не напряжно, то вот неплохая статья:
http://www.lordofduct.com/blog/?p=466
__________________
Hell is the possibility of sanity |
|
|||||
|
В AS3 класс можно унаследовать от нескольких интерфейсов, и лишь от одного класса.
|
|
|||||
|
.
|
Правильнее было бы сказать "реализовать". Классы не наследуются от интерфейсов.
|
|
|||||
|
Цитата:
![]() |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Еще один плюс, про которые вечно забывают - это работа с несколькими swf. здесь для доступа к подгруженной swf (и кастомизации соответственно) подходят только интрефейсы (собственно это и есть их основнач задача)
__________________
Отряд Котовскага |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:59. |
|
|
« Предыдущая тема | Следующая тема » |
|
|