2011-03-22 5 views
0

Je développe une application java qui a 20 plugins, chaque plugin a des éléments de menus GUI et des menus similaires, mais ils stockent des données dans différentes tables dans une base de données. Actuellement, je crée des classes GUI, Event et Model distinctes pour chaque plugin en copiant et collant dans différents fichiers de classe.Développement de plugins Java

Est-il judicieux de développer une interface graphique distincte, des classes d'événements et de modèles pour chaque plugin et de dupliquer des méthodes similaires à d'autres plugins?

J'ai besoin de vos conseils sur la façon de créer une interface générique GUI, événement et modèle pour tous les plugins sans rendre mon application difficile à maintenir.

Merci.

+0

Je pense que pour obtenir une réponse meaningfull vous devez fournir un peu plus en détail. Un exemple (simplifié) de plugin avec surlignage du code dupliqué dans chaque (ou plusieurs) plugins peut vous aider. – Arne

Répondre

1

Nous avons un système de plug-in dans notre produit, et avons rencontré le même problème. La plupart des plug-ins partagent beaucoup de code. Nous avons finalement décidé ce qui suit:

  1. Définir des interfaces propres (PluginABC implémente MyProductInterface). Ces interfaces ne nécessitent pas une implémentation spécifique mais ...
  2. Nous avons fourni un AbstractPlugin que les Plugins peuvent étendre. Ce AbstractPlugin fournit une tonne de fonctionnalités standard utiles pour la plupart des plug-ins.

Exemple:

 
public interface MyProductInterface { 
    public void doIt(); 
} 

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

public abstract class AbstractPlugin { 
    public usefulMethodForMostPlugins() ... 
} 
+0

Bon exemple. Je vous remercie. – John

Questions connexes