在Eclipse RCP程序中放置业务逻辑的位置

时间:2010-07-31 05:25:55

标签: java eclipse eclipse-rcp

我正在RCP中编写一个小应用程序来包装另一个(非RCP)模拟库中的业务逻辑。我可以从我的任何插件中访问和使用库,但是我不知道我应该把模拟库的实例放在哪里,以便其中一个命令处理程序可以调用它。

从阅读文档看起来我应该在工作台中存储这样的“全局”信息 - 但我仍然不明白该怎么做。

帮助?

2 个答案:

答案 0 :(得分:2)

首先,业务层(BL)可以并且应该驻留在其自己的插件中。这将在各层之间提供适当的解耦。

其次,您应该仔细确定接口应该是什么以及暴露哪些类。理想情况下,您应该主要公开接口和数据对象。

最后,决定“握手”的工作原理。例如,如何获得BL的初始接口。由于它是一个插件,它可以有一个Activator来加载它。您可以在激活器中添加一个返回BL接口的方法。

如果您正在寻找更多解耦的东西,您可以创建一个扩展点或将BL部署为OSGi服务,但这对您来说有点过分。

答案 1 :(得分:0)

如果我理解正确,我会看到两种方式:

  1. 使用'SimulationFactory.getInstance(String myAppId)'将实例存储在模型插件中。在获取引用时,传递的String是您应用中常量使用的常量。

  2. 定义一个新类,例如您使用模型实例启动的应用程序中的GlobalAccess并且具有一些getter(无论您是再次使用单个实例还是仅提供公共静态方法,都是有品味的。)

  3. seocond方式类似于eclipse中的某些类,如platfom或platformui,您可以在其中获取初始引用并在工作台中导航。

    修改

    我刚刚找到了一个可能对您有帮助的教程: Passing Data between Plug-ins