Показать сообщение отдельно
Старый 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.