在 Eclipse RCP 的上下文中,操作(Actions)和命令(Commands)有什么区别?我知道它们都对菜单条目做出贡献,但哪个更好?为什么呢?
从我阅读的所有在线资源中,我无法获得对两者之间差异的明确理解。我实际上还没有尝试使用它们,只是想从更高层次的角度来理解它们。
谢谢
你是否阅读过 Eclipse Wiki 上的“常见问题解答:命令和动作有什么区别?”
你可能已经明白,动作(Actions)和命令(Commands)基本上做的是相同的事情:它们会触发执行某个代码片段。它们主要是从用户界面的组件中触发的。
关于动作的主要问题在于该动作的界面展示和代码都存储在动作中。
虽然动作委托存在一些分离,但它们仍与底层动作相关联。选择事件被传递给动作,以便它们能够根据当前选择(以编程方式)更改其启用状态。这不是很优雅。而且要将动作放置在特定的工作台部件上,您必须使用几个扩展点。命令基本上解决了所有这些问题。其基本思想是命令只是某些代码要被执行的抽象概念。实际的代码处理由句柄(handlers)完成。句柄由工作台的某个状态激活。该状态由平台核心表达式查询。这意味着我们只需要一个全局保存命令,根据当前处于活动状态的句柄,其行为会有所不同。
这篇文章详细介绍了它们之间的区别。
动作:
命令涉及更多的扩展点,但:
在VonC的出色回答之外,如果您的应用程序相对较小,则使用命令可能有些过度。它们相对较难设置,并且当您拥有多个视角、编辑器和视图时,它们会发挥最大的作用。
对于简单的事情,我会选择操作。
请记住,Action可能在Eclipse的后续版本中被弃用。我建议您从一开始就使用Command。