您的位置:首页 > 大数据 > 人工智能

Cairngorm的command并不是一直存在,而是触发一次就创建一次command类的实例

2011-02-17 10:18 197 查看
注册的每个command类都存放到了一个Dictionary里面,每次需要用到的时候都是实例化了一次。这是cairngorm旧版本里的代码:

private var commands : Dictionary = new Dictionary();

public function addCommand( commandName : String, commandRef : Class ) : void
{
if( commands[ commandName ] != null )
{
throw new CairngormError(
CairngormMessageCodes.COMMAND_ALREADY_REGISTERED, commandName );
}

commands[ commandName ] = commandRef;
CairngormEventDispatcher.getInstance().addEventListener( commandName, executeCommand );
}

protected function executeCommand( event : CairngormEvent ) : void
{
var commandToInitialise : Class = getCommand( event.type );
var commandToExecute : ICommand = new commandToInitialise();

commandToExecute.execute( event );
}

/**
* Returns the command class registered with the command name.
*/
protected function getCommand( commandName : String ) : Class
{
var command : Class = commands[ commandName ];

if ( command == null )
{
throw new CairngormError(
CairngormMessageCodes.COMMAND_NOT_FOUND, commandName );
}

return command;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐