跨插件访问静态方法

时间:2010-12-27 04:56:26

标签: java

我有两个插件pluginA和pluginB,它们使用来自平台C的SDK。显然,pluginA和pluginB将无法相互访问方法,并且pluginA和pluginB之间的任何通信都必须通过C。

pluginA有一个实用程序类utilA,它有一个静态方法getMethod(),它将在pluginB中使用。并返回一个类的对象,该对象也在pluginB本身中。我可以在平台C中创建任何接口/工厂类,以便可以完成此通信。

有人可以建议如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

这是工厂设计模式。工厂应该是可以从SDK访问所有“插件”的资源,SDK应该决定(可能带有设置文件或注释)哪个插件成为工厂的供应商。

另一个设计思想。我更喜欢使用interfaces作为Factory对象的输出。这样,一个类可以以任何方式实现接口,并且每个其他类(无论何时创建,或者ClassLoader如何加载)都可以使用该工厂。这可以为您在测试或运行时节省大量麻烦。