Eclipse Action与Command的区别

      eclipse的actioncommand都能够执行一段确定的代码。通过一个工具栏上的图标、菜单项都可以触发执行。Action框架已经被验证过了,集成的非常紧密,而且很容易实现。但是为什么要废弃action改成command呢?

Actions

    Actions主要关注的是表现形式,而且所有代码都在action中。尽管有些代码也分布在action代理中,但是本质上还是action。选择事件传递给actionaction根据当前的选择改变状态。这不是一种简洁的办法。同时,想要放置一个action到工作区的某个位置,你需要使用若干个扩展点:

·        org.eclipse.ui.viewActions

·        org.eclipse.ui.popupMenus

·        org.eclipse.ui.editorActions


Commands

    Command优雅的解决了action的问题。Command的基本思想是它只是抽象的执行代码,实际的代码在handler中。Handler由工作区的确定情形激活。这个情形通过平台核心表达式查询。这意味着,我们只需要全局的Save命令,这个命令根据当前激活的handler决定不同的行为。尽管这个特殊的command被重定向为一个全局的action,但是这仍然需要程序实现而不是声明。向工作区放入一个command只需要用一个扩展点

·      org.eclipse.ui.menus

     除了上面提到的,handler能够被清单文件中一种强大的表达式语法激活。这意味着在RCP应用或者一个流畅运行的工作区中,将会有更少的代码、更多的声明。

    如果你去看看首选项页的General > Keys ,你会找到平台支持的command列表,包括它们所属的上下文(when列)和配置(scheme)。键绑定连接commandcommand连接到handler。用户可以改变一个command的键绑定而不需要让handler知道,commandhandler在不同的环境下也可以动态变化。


原文地址:http://wiki.eclipse.org/FAQ_What_is_the_difference_between_a_command_and_an_action%3F

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值