我有两个插件pluginA和pluginB,它们使用来自平台C的SDK。显然,pluginA和pluginB将无法相互访问方法,并且pluginA和pluginB之间的任何通信都必须通过C。
pluginA有一个实用程序类utilA,它有一个静态方法getMethod(),它将在pluginB中使用。并返回一个类的对象,该对象也在pluginB本身中。我可以在平台C中创建任何接口/工厂类,以便可以完成此通信。
有人可以建议如何解决这个问题。
答案 0 :(得分:1)
这是工厂设计模式。工厂应该是可以从SDK访问所有“插件”的资源,SDK应该决定(可能带有设置文件或注释)哪个插件成为工厂的供应商。
另一个设计思想。我更喜欢使用interfaces作为Factory对象的输出。这样,一个类可以以任何方式实现接口,并且每个其他类(无论何时创建,或者ClassLoader如何加载)都可以使用该工厂。这可以为您在测试或运行时节省大量麻烦。