Eclipse RCP上下文中的操作和命令之间有什么区别?我知道他们都对菜单条目有贡献,但哪一个更好?为什么?
在我阅读的所有在线资源中,我无法深入了解两者之间的差异。我实际上并没有尝试过使用它们,但只是想从更高层次的角度来理解它们。
由于
答案 0 :(得分:39)
你读过eclipse wiki FAQ What is the difference between a command and an action?
吗?你可能已经明白,动作和命令基本上做同样的事情:它们会导致某段代码被执行。它们主要是从用户界面中的艺术家触发的
操作的主要问题是表现形式和代码都存储在操作中。
尽管Action Delegates中存在一些分离,但它们仍然与基础操作相关联。选择事件将传递给Actions,以便它们可以根据当前选择更改其启用状态(以编程方式)。这不是很优雅。另外,要在某个工作台部件上放置动作,您必须使用多个扩展点。命令几乎可以解决所有这些问题。基本思想是命令只是要执行的一些代码的抽象概念。代码的实际处理由处理程序完成。处理程序由工作台的某个状态激活。平台核心表达式查询此状态。这意味着我们只需要一个全局Save命令,该命令根据当前处理的处理程序而表现不同。
此article详细说明了差异
操作强>:
命令涉及更多扩展点,但是:
答案 1 :(得分:6)
如果您的应用程序相对较小,只需添加VonC的优秀答案,命令可能有点过分。它们设置起来相对较难,当你有多个视角,编辑和视图时,它们发挥最大作用。
对于简单的事情,我会采取行动。
答案 2 :(得分:4)
请记住,在以后的Eclipse版本中可能会弃用Action。我建议你从一开始就使用Command。