Java插件开发

时间:2011-03-22 20:47:28

标签: java plugins

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

为每个插件开发单独的GUI,事件和模型类以及与其他插件重复的类似方法是明智的吗?

我需要您就如何为所有插件创建通用GUI,事件和模型界面提出建议,而不会让我的应用程序难以维护。

谢谢。

1 个答案:

答案 0 :(得分:1)

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

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

    public interface MyProductInterface {
       public void doIt();
    }
    
    public class MyPlugin implements MyProductInterface extends AbtractPlugin {
      public doIt() {
        // ...
        usefulMethodForMostPlugins();
        /// ...
      }
    }
    
    public abstract class AbstractPlugin {
       public usefulMethodForMostPlugins() ...
    }