Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.09.2009, 18:24
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 1  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
По умолчанию Понимание смысла интерфейсов

Зачем? Например, я прекрасно понимаю, что методы "умереть", "переместится в" и "показать широченную улыбку" могут быть у классов главного героя, врага и неприметного старичка на заднем фоне, но я не могу найти интерфейсам лучшей практики, нежели создать эти методы 2-умя кнопками в каком нибудь редакторе коде, вместо набивания их заново вручную.
Посвятите новичка, зачем они нужны?)

Старый 21.09.2009, 18:28
alekslitvinenk вне форума Посмотреть профиль Отправить личное сообщение для alekslitvinenk Посетить домашнюю страницу alekslitvinenk Найти все сообщения от alekslitvinenk
  № 2  
Ответить с цитированием
alekslitvinenk
 
Аватар для alekslitvinenk

Регистрация: Oct 2005
Адрес: Москва
Сообщений: 491
Отправить сообщение для alekslitvinenk с помощью ICQ Отправить сообщение для alekslitvinenk с помощью AIM Отправить сообщение для alekslitvinenk с помощью Skype™
Ну, например, если функции программера-кодера и архитектора приложения разделены. Архитектор приложения как раз и будет заниматься созданием интерфейсов. Но такой подход актуален, в основном, для крупных приложений.

Старый 21.09.2009, 18:34
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 3  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Экземпляр приобретает тип интерфейса.

Код AS3:
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();
	}
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 21.09.2009 в 21:48.
Старый 21.09.2009, 18:38
MrPoma вне форума Посмотреть профиль Отправить личное сообщение для MrPoma Посетить домашнюю страницу MrPoma Найти все сообщения от MrPoma
  № 4  
Ответить с цитированием
MrPoma
 
Аватар для MrPoma

Регистрация: Jul 2006
Адрес: Питер
Сообщений: 2,083
Отправить сообщение для MrPoma с помощью Skype™
Посмотри на иерархию наследования, где в ней расположен класс BitmapData и DisplayObject. Метод BitmapData.draw() может принимать экземпляры обоих этих классов. Как это реализовать без интерфейса IBitmapDrawable? Передавать Object - не выход. Интерфейс связывает два узла в дереве, которые расположены на разных ветвях (хотя и не обязательно на разных).
__________________
жж | твттр | гглплс | фсбк | вкнткт | гтхб


Последний раз редактировалось MrPoma; 21.09.2009 в 18:55.
Старый 21.09.2009, 19:54
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 5  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Ммм, спасибо.
Тогда назревает другой, очевидный вопрос - а стоит ли использовать интерфейсы если в логике приложения можно легко обойтись без этого?

Ирония, но только что попал в ситуацию, когда без интерфейсов обойтись было бы сложно.)
Огромное спасибо dimarik`у.


Последний раз редактировалось Psycho Tiger; 21.09.2009 в 20:35.
Старый 21.09.2009, 21:00
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Если по-английски читать не напряжно, то вот неплохая статья:
http://www.lordofduct.com/blog/?p=466
__________________
Hell is the possibility of sanity

Старый 21.09.2009, 21:21
enepx вне форума Посмотреть профиль Отправить личное сообщение для enepx Посетить домашнюю страницу enepx Найти все сообщения от enepx
  № 7  
Ответить с цитированием
enepx
 
Аватар для enepx

Регистрация: Aug 2006
Адрес: Мюнхен
Сообщений: 509
Отправить сообщение для enepx с помощью ICQ Отправить сообщение для enepx с помощью Yahoo Отправить сообщение для enepx с помощью Skype™
В AS3 класс можно унаследовать от нескольких интерфейсов, и лишь от одного класса.

Старый 21.09.2009, 21:50
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 8  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от enepx Посмотреть сообщение
В AS3 класс можно унаследовать от нескольких интерфейсов.
Правильнее было бы сказать "реализовать". Классы не наследуются от интерфейсов.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 21.09.2009, 22:04
enepx вне форума Посмотреть профиль Отправить личное сообщение для enepx Посетить домашнюю страницу enepx Найти все сообщения от enepx
  № 9  
Ответить с цитированием
enepx
 
Аватар для enepx

Регистрация: Aug 2006
Адрес: Мюнхен
Сообщений: 509
Отправить сообщение для enepx с помощью ICQ Отправить сообщение для enepx с помощью Yahoo Отправить сообщение для enepx с помощью Skype™
Цитата:
Сообщение от dimarik Посмотреть сообщение
Правильнее было бы сказать "реализовать". Классы не наследуются от интерфейсов.
Точно, спасибо.

Старый 22.09.2009, 17:08
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 10  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Еще один плюс, про которые вечно забывают - это работа с несколькими swf. здесь для доступа к подгруженной swf (и кастомизации соответственно) подходят только интрефейсы (собственно это и есть их основнач задача)
__________________
Отряд Котовскага

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:59.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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