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

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

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

Регистрация: Jan 2008
Сообщений: 221
По умолчанию Program to implementation супротив Program to interface

В книге ActionScript 3 Design Patterns автор рассматривает два подхода к ????, я пока не понял к чему эти два подхода (видимо к составлению композиции).

В общем Автор рассматривает два подхода Program to implementation и Program to interface

Иллюстрируется это дело таким кодом

Код:
//SpaceWarrior.as
package {

	interface SpaceWarrior {

		function useWeapon():void;

	}
}
Код:
//Alien.as
package {

	public class Alien implements SpaceWarrior {

		function Alien() {

			//Constructor
		}

		public function useWeapon():void {
			trace("Zaaaapp!!!");
		}
	}
}

Код:
//Earthling.as
package {

	public class Earthling implements SpaceWarrior {

		function Earthling() {
			//Constructor
		}

		public function useWeapon():void {
			trace("Ka Boom!!!");
		}
	}
}
Код:
//Main.as
package {

	import flash.display.Sprite;

	public class Main extends Sprite {

		public function Main() {

			//Program to implementation

			var alien:Alien=new Alien  ;
			alien.useWeapon();

			//Program to interface

			var spaceWarrior:SpaceWarrior=new Earthling  ;
			spaceWarrior.useWeapon();
		}
	}
}

Так же автор говорит что в сферическом вакууме Program to implementation хуже чем Program to interface.

вопросы

1. Чем подход Program to interface лучше другого.
2. В чём фишка каждого подхода ?
3. Чем чревато на практике использование каждого из подходов?
4. Кто из форумчан что предпочитает и почему.

(мнение автора книги мне понятно, хотелось бы услышать альтернативные мнения)

Старый 16.10.2008, 21:40
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 2  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
1. а в чём разница?
2. а в чём разница?
3. а в чём разница?
4. запретить автору книги писать книги.

Старый 16.10.2008, 21:46
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
1. Ничем, они просто разные, зависит от конкретной задачи;
2. Второй позволяет в одной переменной хранить ссылки на любой объект, реализующий соответствующий интерфейс. Зато первый делает доступными остальные свойства конкретного экземпляра без обязательного каста;
3. Ничем;
4. И то и другое именно там, где оно подходит лучше.

з. Ы. Я бы не стал читать книгу автора, который поленился поставить скобки при вызове конструкторов объектов. Да, можно опустить скобки, но лучше так не делать.

Старый 16.10.2008, 21:51
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 4  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
__etc, ну да .. это болие развёрнуто особенно тонко подметил ЗЫ мой 4й пункт

Старый 17.10.2008, 00:41
terbooter вне форума Посмотреть профиль Отправить личное сообщение для terbooter Найти все сообщения от terbooter
  № 5  
Ответить с цитированием
terbooter

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
Автора зовут William B. Sanders.
Он довольно много книг наваял. В часности еще книги про FMS2 и FMS3. У меня к его книжному творчеству двоякое отношение. С одной стороны, мне близок его способ мышления и желание объяснить все на простых примерах (это его фишка minimalist example, кстати на его блоге лучший такой экзэмпл по pureMVC). C другой стороны,
книгу то тоже надо писать , контракты с издательствами, сроки и тд. И получается что 50-80 процентов его книг набиты гольной коньюктурой - пустое пересказывание очевидных вещей.

Завтра посмотрю к чему эти два подхода, дома книжки нет.

Старый 17.10.2008, 02:22
Fernando Costa вне форума Посмотреть профиль Отправить личное сообщение для Fernando Costa Найти все сообщения от Fernando Costa
  № 6  
Ответить с цитированием
Fernando Costa
 
Аватар для Fernando Costa

Регистрация: Oct 2006
Адрес: simferopol -> kyiv
Сообщений: 2,161
Отправить сообщение для Fernando Costa с помощью ICQ
Код:
2. Второй позволяет в одной переменной хранить ссылки на любой объект, реализующий соответствующий интерфейс.
Вот это очень полезный момент
__________________
: M F N W :

Старый 17.10.2008, 12:59
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 7  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Всё разбивается, когда нужно одновременно наследоваться от кого-то, и реализовывать дополнительный интерфейс. Единственный выход - самому прописать интерфейс того, от кого наследуешься. Я про Sprite говорю.

Если хочется унаследовать несколько классов от спрайта, и потом навесить на них общий интерфейс, то нифига не получится. Или получится, но на костылях.

http://flasher.ru/forum/showthread.php?t=115336
__________________
тонкий тролль, осеянный благодатью

Старый 17.10.2008, 14:00
Nemo_c вне форума Посмотреть профиль Отправить личное сообщение для Nemo_c Найти все сообщения от Nemo_c
  № 8  
Ответить с цитированием
Nemo_c
 
Аватар для Nemo_c

Регистрация: Jan 2008
Сообщений: 221
Цитата:
Сообщение от Fernando Costa Посмотреть сообщение
Вот это очень полезный момент
Полезный момент для чего?, и при каких обстоятельствах?


Последний раз редактировалось Nemo_c; 17.10.2008 в 14:03.
Создать новую тему Ответ Часовой пояс GMT +4, время: 13:27.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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