Показать сообщение отдельно
Старый 21.01.2011, 20:55
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ну, как я понимаю из объяснения вики:
Цитата:
Сообщение от http://en.wikipedia.org/wiki/Command_pattern
In object-oriented programming, the command pattern is a design pattern in which an object is used to represent and encapsulate all the information needed to call a method at a later time. This information includes the method name, the object that owns the method and values for the method parameters.
То, не совсем так, но близко. Т.е. в AS3 в общем случае реализация бы выглядела так:
Код AS3:
package  
{
	/**
	 * ...
	 * @author wvxvw
	 */
	public class Command
	{
		private var _params:Array;
		private var _method:Function;
 
		public function Command(method:Function, ...params) 
		{
			super();
			this._method = method;
			this._params = params;
		}
 
		public function run():* { return this._method.apply(null, this._params); }
	}
 
}
И тут получается не хорошо т.как. приходится терять возвращаемый тип. А генериков в AS3 нет, и если мы наследуемся или имплементим чего-то мы не можем поменять возвращаемый тип на более точный (вот тут уже ограниченность AS3). Поэтому я им и не пользуюсь наверное
Да, и судя по описанию, этот шаблон в общем случае в AS3 реализовать не возможно т.как у функции может не быть имени
__________________
Hell is the possibility of sanity