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; }
相关文章推荐
- 【实例】javascript中使用event.target获取触发该事件标签的相关数据而不是通过document
- 互斥锁与自旋锁的区别(自旋锁不是通过休眠使进程阻塞,而是在获取锁之前一直处于忙等。适用场景:锁被持有时间短,并且线程不希望在重新调度上花费太多成本)
- 让你流泪的不是毕业,而是无法再重走一次的青春
- 设置,一次请求只创建一个上下文实例对象
- 程序一直崩溃,对象的指针不是自身,而是野指针?
- Android程序 类QQ通知常驻在Notification栏 点击Notification正确回调到之前已经放置在后台的Task中的对应Activity,而不是创建它的一个新实例
- Oracle数据库中如果存在表就删除不存在就创建的实例
- startActivity()去打开一个已存在的Activity,如何让它重新执行创建一次呢?
- Android程序 类QQ通知常驻在Notification栏 点击Notification正确回调到之前已经放置在后台的Task中的对应Activity,而不是创建它的一个新实例
- 创建Bean的三种方式 在大多数情况下,Spring容器直接通过new关键字调用构造器来创建Bean实例,而class属性指定Bean实例的实现类,但这不是实例化Bean的唯一方法。实际上,Sprin
- Android程序 类QQ通知常驻在Notification栏 点击Notification正确回调到之前已经放置在后台的Task中的对应Activity,而不是创建它的一个新实例
- 解决eclipse maven工程中src/main/resources目录下创建的文件夹所显示样式不是文件夹,而是"包"图标样式的问题
- 一直想得到这样一个函数,创建类的一个实例,该类由指定的泛型参数指定
- 2014_03_28工作日志:CreateFile不是创建文件,而是指向某个文件的一个句柄
- 解决eclipse maven工程中src/main/resources目录下创建的文件夹所显示样式不是文件夹,而是"包"图标样式的问题
- 关于struts和Spring 结合到一起之后存在ACtion创建单实例还是多
- 工作效率提升之创建桌面快捷方式------不是不知道, 而是没有意识到
- 设置窗体的起始位置,并检查配置文件是否存在,存在使用配置文件,不存在创建配置文件,在每次打开窗体时保持窗体上一次关闭的位置。
- 制作Hololens中一直面向用户的面板,不是UI,而是类似公告板
- C# WinForm 单例模式(例:同一个窗体只创建一次实例)