![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Интерфейс это как описание стандарта.
То что в производстве называется ГОСТ-ом. Т.е. описание требований к некоторому продукту. Но сам по себе ГОСТ бесполезен. Это просто свод правил поведения. Точно так же и интерфейс. Если мы видим класс который имплементит интерфейс - значит можем быть уверенны что он соответствует этому стандарту. Соответственно можем к нему обращаться по указанным именам переменных или функций. Там где вы не знаете как нечто реализовать, но уже знаете список требований к нему, или же заранее знаете что реализаций будет много, но они должны соответствовать некоторому набору трабований - там становятся нужны интерфейсы.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
[+1 25.10.13]
[+4 18.03.14] |
Допустим, Вы сделали игру и Вы хотите, чтобы кто-то еще сделал для нее разные сущности - предметы, оружие, врагов. Для совместимости Ваших и сторонних классов и придуман интерфейс. Если сторонний класс не имеет нужных Вам интерфейсов (их может быть несколько) Вы, используя фабрику, наделяете его нужным интерфейсом. Исходный класс остается таким каким и был. Новый класс как бы проксирует его.
Добавлено через 1 минуту Также интерфейсы используются для унификации API Последний раз редактировалось Babylon; 24.10.2013 в 19:14. |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Цитата:
API - Application Public Interface
__________________
Отряд Котовскага |
|
|||||
|
В контексте масла этот кусок меня куда больше смущает
![]() Цитата:
Значит, для примера куда больше подходит Цитата:
Фабрика – как-бы-паттерн который создаёт экземпляры в рантайме. Поделись опытом, как в рантайме наделять классами. Действительно ли оно стоит? Возможно, эффективней будет всё-таки выкинуть фабрику да писать классы в редакторе, по старинке, складывая головную боль на компилятор? Цитата:
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Цитата:
Это уже не косяк подхода, это косяк флеша, что он не имеет никаких интерфейсов для дисплей-листа, окромя IBitmapDrawable. Который, собственно, никуда не упирается абсолютно. Несколько проектов подряд последних были модульные, и именно с такой постановкой задачи как озвучил бабулон. Часть модулей писали мы, часть аустсорсили. Благо что каждый модуль это флешка, потому он просто физически не может быть ничем кроме спрайта. А если бы они колбасили нам допустим одну библиотеку в которой пачка классов-модулей - была бы *опа. Но опять же повторюсь - это адобовцы косоруко проектировали стандартные пакеты ас3. а как было бы круто: Но остается только мечтать.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Если рассматривать интерфейс-метку типа IBitmapDrawable, который как раз говорит что можно сделать С объектом, то я, конечно, извиняюсь, но вот создадите Вы наследника EventDispatcher к примеру, и пометите его как IBitmapDrawable (или IDisplayObject). И что? Дело не в "планировании классов", а в технической невозможности отображать "то, не знаю что". DisplayObjectы это сущности плеера, а не языка, и создавать свои Вы не можете технически. Природа Интерфейса же такова, что ЛЮБОЙ объект может подписаться его реализовывать. Это противоречие нерешаемо. То есть, решаемо тем, что такого интерфейса нет. Потому что его в принципе нет. Технически.
__________________
Reality.getBounds(this); |
|
|||||
|
Цитата:
А что дает IEventDispatcher? В нашей ситуации пример с дроваблом - более подходит. Суть то та же. "Нечто, которое можно отрисовать". Только в случае с дроваблом - на битмапу. А в случае с ДО - добавить в ДЛ. Во всяком случае, с текущей архитектурой это, скорее всего, не решаемо. Но я уверен что это не настолько уж проблематично было предусмотреть изначально.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ну ты отрисуй в битмапдату наследника диспатчера для примера)
Метка она и в Африке метка. Решение "на коленке" было сделано, чтоб битмапдату отрисовывать. По сути тоже языка никак не касалось, но видимо не смогли ничего лучше придумать. Однако это не показатель, что надо продолжать совершать такие же ошибки))
__________________
Reality.getBounds(this); |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
А мне лишь жаль, что нельзя наследоваться от DO для создания контейнера без всяческих излишеств.
Хотя возможно, что неиспользуемые методы и свойства супер класса не добавляются при компиляции. Но у меня был момент, когда я смотрел, что из себя представляет класс унаследованный от Sprite через describeType.. Там так много всего. |
|
|||||
|
Лол, а я в дровабл не заглядывал никогда.
Он пустой, оказывается ![]() Ну с такой реализацией нафиг не нужен интерфейс для до. Я просто думал там какой-то геттер выдающий как минимум шейп или хз. В любом случае реализуемая задача, и ничего плохого не вижу если грамотно решить.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
![]() |
![]() |
Часовой пояс GMT +4, время: 06:46. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|