什么样的差异之间的行动和命令的上下文中蚀RPC?我知道他们都做出贡献的菜单中的条目,但其中一个是更好吗?为什么?

所有的在线资源,我读过,我不能获得一个坚定的认识之间的差异,两者。我实际上并没有试图使用它们,但只是想了解他们开始从更高水平的观点。

感谢

有帮助吗?

解决方案

你有没有读到的日食wiki 常见问题之间的区别是什么命令一个动作?

你可能已经了解的行动和命令基本上做同样的事情:他们会造成一定的代码来执行的。它们是触发的,主要是从artificats内的用户界面

主要关注 行动 是, 表现形式和代码是所有存在的行动.
虽然有一些分离在行动的各位代表,他们仍然相连的潜在行动。选择事件传递给操作,以便它们可以改变他们的启用状态(编程方式)根据当前选择。这不是很优雅。还向地方行动在某些工作台的一部分,你必须使用几个扩展点。

命令 很多解决所有这些问题。基本想法是 该指令仅仅是抽象的概念的一些代码被执行。实际处理的代码是的,好了,处理程序.处理程序是由某些国家的工作台。这种状态查询的平台的核心表现。这意味着我们只需要一个全球救命令的行为不同的基础上处理目前活跃。

properties of a command

文章 细节上的差异

行动:

  • UI和处理总绑.有没有办法可以单独每一个其他的
  • 同时行动能够促成不同部分的工作台(菜单/工具条),他们都是 不同的扩展点 所以你结束了复制XML在多个地方。最糟糕的是,并非所有的扩展分期望得到同样的配置。
  • 指定行动在多个地方是 维护噩梦.如果你要改变标的行动,需要改变所有的地方。
  • 另一个问题,有重复的行动plugin.xml 是, 多实例的同样的行动将建立在存储器.

命令涉及更多的扩展分,但是:

  • 处理程序可以宣布分别从命令。这使得对 多个处理程序的声明的同样的命令.
  • activeWhen 所有的处理程序进行评估和一个返回真正的大多数特定的条件选择。所有这些事情 完成,甚至没有装载处理程序的记忆。即使没有装载你的插件!
  • 定义参数是所有关于返回的地图显示的名称和标识。的名字将显示在关键绑页和id将用于援引的命令键时的顺序是按下。
  • 定义IExecutionListener,这仅仅是一个观察员的命令执行的,因此它可以既没有否决权上,它也没有作出任何改变事件

其他提示

只是增加VonC的出色答卷,如果你的应用是比较小的命令可能是有点矫枉过正。他们是比较难以建立,并且他们闪耀,当你有多个角度,编辑和意见最多。

对于简单的东西,我会去的动作。

要记住的行动可能对后来的Eclipse版本中被废止。我建议你从一开始就使用命令。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top