![]() |
1
1
您的解决方案是实现这种场景最常见的方法。您为插件提供一个类的实例(由core实例化),插件可以存储该实例以供将来使用(例如,将数据传递给core或触发另一个操作)。通常,此类类的名称以上下文结尾(例如BundleContext、PluginContext等)。 另一种模式是使用一种中介类。一个包含一些静态方法的类,插件可以使用这些方法将一些数据发送到core或触发一些操作。我不喜欢它,它不是一个非常干净的解决方案,但它使插件开发人员更容易访问API,因为他们不需要存储上下文实例并尊重其生命周期。此模式在IntelliJ IDEA体系结构中广泛使用。 在开发基于插件的系统时,我强烈建议您了解OSGi体系结构和API。这在这方面可能会有所帮助。 |