如何在我的Java应用程序中添加插件架构?

时间:2015-07-24 08:54:45

标签: java design-patterns plugins plugin-architecture

我有一个Java命令行应用程序,它在运行源代码中定义的一些步骤后创建一个报告文件。 现在我想将这些步骤与我的应用程序的核心功能分开,因为我想要那个 应用程序可以动态加载"步骤"。 这意味着,我的应用程序的核心功能是创建报告文件。分离的步骤"应该提供报告的内容。

我决定在我的应用程序中将这些步骤作为插件实现。每个人都使用 应用程序可以使用已有的或自己编写的插件扩展它。

现在我的问题是,在我的情况下,为我的应用程序开发插件系统的最佳方法是什么?我研究了很多并得到了 多输入。我无法决定如何解决问题。

来自SO的有趣问题:

在我的研究期间,我收集了一些如何解决它的信息:

  • 使用ServiceLoader:一个简单的服务提供者加载工具。
  • 使用NetBeans中的org.openide.util.Lookup(动态注册和查找组件)
  • 定义自己的插件接口,必须从插件实现。然后使用Java ClassLoader来 加载这些类并创建它们的实例。
  • 使用OSGi,但我认为它是"大"为了我的目的。

解决问题的最佳方法是:

  • 优雅的插件架构(可能使用了一些设计模式),
  • 易于维护源代码,
  • 并且易于开发插件。

我的插件系统方法是否正确?或者还有其他什么可以使用?

0 个答案:

没有答案