我正在RCP中编写一个小应用程序来包装另一个(非RCP)模拟库中的业务逻辑。我可以从我的任何插件中访问和使用库,但是我不知道我应该把模拟库的实例放在哪里,以便其中一个命令处理程序可以调用它。
从阅读文档看起来我应该在工作台中存储这样的“全局”信息 - 但我仍然不明白该怎么做。
帮助?
答案 0 :(得分:2)
首先,业务层(BL)可以并且应该驻留在其自己的插件中。这将在各层之间提供适当的解耦。
其次,您应该仔细确定接口应该是什么以及暴露哪些类。理想情况下,您应该主要公开接口和数据对象。
最后,决定“握手”的工作原理。例如,如何获得BL的初始接口。由于它是一个插件,它可以有一个Activator来加载它。您可以在激活器中添加一个返回BL接口的方法。
如果您正在寻找更多解耦的东西,您可以创建一个扩展点或将BL部署为OSGi服务,但这对您来说有点过分。
答案 1 :(得分:0)
如果我理解正确,我会看到两种方式:
使用'SimulationFactory.getInstance(String myAppId)'将实例存储在模型插件中。在获取引用时,传递的String是您应用中常量使用的常量。
定义一个新类,例如您使用模型实例启动的应用程序中的GlobalAccess并且具有一些getter(无论您是再次使用单个实例还是仅提供公共静态方法,都是有品味的。)
seocond方式类似于eclipse中的某些类,如platfom或platformui,您可以在其中获取初始引用并在工作台中导航。
修改的
我刚刚找到了一个可能对您有帮助的教程: Passing Data between Plug-ins