Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Понять интерфейсы (http://www.flasher.ru/forum/showthread.php?t=145702)

nOobCrafter 18.10.2010 01:21

Цитата:

получается что я не знаю что создаю
на выходе вы создаете обьект с неким нужным вам набором методов, которым можно пользоваться. По сути вам ведь это и надо, у него могут быть еще какие то методы, но в данный конкретный момент они не нужны и надо лишь то что описано в интерфейсе который этот обьект реализует.
Вам же приводили пример в меню, представим что у вас в меню каждая кнупочка уникальна, она выглядит не так как остальные, у нее анимация своя, но она реализует некий интерфейс, и у нее точно есть 2 метода show() И hide() для работы с кнупочками вам ведь больше и не надо?
опять же выше приведен пример с использованием метода serialize()...

TanaTiX 18.10.2010 01:33

nOobCrafter, я сейчас не столько по интерфейсу спросил и по примерам вроде все понятно. Хотя...
Вот я создаю некий объект button. Как я буду пользоваться его методами, когда у меня есть только названия методов? Мне их придется как-то переопределять? Я понимаю ситуации, когда речь идет о классах, но в указанной конструкции создается не класс, а его экземпляр, можно даже по сути сказать "экземпляр интерфейса". Или это я из контекста выдернул кусок и все с ног на голову перевернул? Смотрел на 8й пост.

iNils 18.10.2010 02:35

Цитата:

Можно ссылочку поподробнее, где развенчивается этот миф?
Можно. http://включи_свой_мозг
Каким образом интерфейс, не имеющий тела функций может реализовать множественное наследование?

Wolsh 18.10.2010 02:42

Цитата:

Я так понимаю аналогом данной конструкции без интерфейса было бы var button:*...
Ну не аналогом, а дешевым эрзацем... Прямой противоположностью, ибо смысл Интерфейса в том что методы четко определены, а смысл этой звездочки - "я понятия не имею, что это за класс и что у него за методы".
Потом в коде Вы пишете: button.label = "LOAD"; и компилятор вежливо кивает - "ну label так label, мне то откуда знать". А что потом будет в рантайме, покажет Error Message.
Начинающего программиста от продвинутого отличает то, что он никогда не ошибается. Начинающий программист верит в то, что конечно же передаст в этот параметр только то, что нужно. Чаще всего так и есть, ибо в двухстах строках трудно заблудиться))) В этой вере вся сила звездочки. Продвинутый программист не верит никому. Он устанавливает жесткие правила, чтобы ничто не могло пойти "не так". В этом смысл программирования. Не должно быть никаких неопределенностей. Если нельзя определиться с классом, поможет Интерфейс, но жесткую гарантию, что label у button есть, получить необходимо. Интерфейс может гарантировать наличие нужных методов и, если надо - наоборот скрыть ненужные, которые может и есть в Классе, но в данной ситуации не должны быть доступны.

iNils 18.10.2010 02:55

Вложений: 1
Интерфейс в картинках
Вложение 25333

Hidest 18.10.2010 16:20

Цитата:

Сообщение от TanaTiX (Сообщение 943436)
nOobCrafter, я сейчас не столько по интерфейсу спросил и по примерам вроде все понятно. Хотя...<...>Я понимаю ситуации, когда речь идет о классах, но в указанной конструкции создается не класс, а его экземпляр, можно даже по сути сказать "экземпляр интерфейса". <...>

Так вы и будете пользоваться определенными методами. Вы создаете не "экземпляр интерфейса" (что как бы смысла не имеет), а создаете экземпляр того класса, который имплементит данный интерфейс.

Фактически: var переменная:"Тип данных, который по-любому должен иметь определенный метод, какой он окажется в конце концов - не важно" = "Класс, который имплементит Интерфейс и имеет у себя уже реализованный необходимый метод".

dimarik 18.10.2010 16:32

Отсюда один из постулатов философии ООП. Программируйте в соответствии с интерфейсами, а не с реализацией.

samana 18.10.2010 18:08

На этом видео, показан интересный способ применения интерфейсов.

Psycho Tiger 18.10.2010 18:27

expl,
Цитата:

придется реализовывать этот метод и в MySimpleButton
SimpleButton final как бы.

Добавлено через 6 минут
@iNils:
Цитата:

Каким образом интерфейс, не имеющий тела функций может реализовать множественное наследование?
не очень вникал в сообщения, но вроде люди имели ввиду что AS3 поддерживает множественное наследование интерфейсов. Реализовать говорили скорее в другом контексте.

Добавлено через 9 минут
@Автор: http://www.flasher.ru/forum/showthread.php?t=130250

dimarik 18.10.2010 18:39

Цитата:

SimpleButton final как бы.
Да вроде нет


Часовой пояс GMT +4, время: 16:31.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.