Java插件开发

Java插件开发,java,plugins,Java,Plugins,我正在开发一个java应用程序,它有20个插件,每个插件都有一些类似的GUI菜单项和菜单事件,但它们将数据存储在数据库中不同的表中。目前,我正在通过复制和粘贴不同的类文件,为每个插件创建单独的GUI、事件和模型类 为每个插件开发单独的GUI、事件和模型类,并将类似的方法复制到其他插件,这明智吗 我需要你的建议,告诉我如何为所有插件创建一个通用的GUI、事件和模型界面,而不让我的应用程序难以维护 谢谢。我们的产品中有一个插件系统,遇到了同样的问题。许多插件共享大量代码。我们最终决定如下: 定义干净

我正在开发一个java应用程序,它有20个插件,每个插件都有一些类似的GUI菜单项和菜单事件,但它们将数据存储在数据库中不同的表中。目前,我正在通过复制和粘贴不同的类文件,为每个插件创建单独的GUI、事件和模型类

为每个插件开发单独的GUI、事件和模型类,并将类似的方法复制到其他插件,这明智吗

我需要你的建议,告诉我如何为所有插件创建一个通用的GUI、事件和模型界面,而不让我的应用程序难以维护


谢谢。

我们的产品中有一个插件系统,遇到了同样的问题。许多插件共享大量代码。我们最终决定如下:

  • 定义干净的接口(PluginABC实现MyProductInterface)。这些接口不需要特定的实现,但
  • 我们提供了一个插件可以扩展的抽象插件。这个AbstractPlugin提供了大量对大多数插件有用的标准功能 例如:

    public interface MyProductInterface { public void doIt(); } public class MyPlugin implements MyProductInterface extends AbtractPlugin { public doIt() { // ... usefulMethodForMostPlugins(); /// ... } } public abstract class AbstractPlugin { public usefulMethodForMostPlugins() ... } 公共接口MyProductInterface{ 公共无效doIt(); } 公共类MyPlugin实现MyProductInterface插件{ 公共doIt(){ // ... usefulMethodForMostPlugins(); /// ... } } 公共抽象类AbstractPlugin{ public UsefulyMethodFormostPlugins()。。。 }
    我认为要得到一个有意义的答案,你必须提供更多的细节。一个(简化的)示例插件,突出显示每个(或多个)插件中重复的代码可能会有所帮助。