2010-02-16 21 views
0

Quelle est la méthode la plus efficace pour implémenter un objet de données partagé entre plusieurs JInternalFrames sur un seul JDesktopPane?Objet partagé entre plusieurs JInternalFrames

Vous ne savez pas si vous voulez aller avec singleton ou puis-je mettre un objet de données dans le JDesktopPane et accéder à partir d'un composant? Je ne veux pas garder des instances séparées de ces données pour chaque image (beaucoup de trames)

Répondre

1

Je voudrais éviter de singleton (comme c'est a-kin à l'aide de variables globales - Voir here pour une description) et à la place sous-classe JInternalFrame pour contenir une référence à l'objet de données partagé; par exemple.

public class MyInternalFrame extends JInternalFrame { 
    private final SharedData data; 

    public MyInternalFrame(SharedData data) { 
    this.data = data; 
    } 
} 

Il est évident que malgré de multiples références à votre shareddata (un par exemple de MyInternalFrame) il n'y a toujours qu'un seul objet SharedData dans votre système; c'est-à-dire que vous ne dupliquez pas les données avec cette approche.

+0

Une très belle solution, merci. – rutherford