2010-03-24 13 views
1

Je ne sais pas, quelle est la fonction de lookups.singleton de code dans le code ci-dessousQue signifie ce code?

public class ProjectNode extends AbstractNode { 

public ProjectNode(MainProject obj, ProjectsChildren children) { 
    super (children, Lookups.singleton(obj)); 
    setDisplayName (obj.getName()); 
} 
} 
+0

dupliquer joseph/badgirl http://stackoverflow.com/questions/2526758/how-does-lookup-work? – Karussell

+0

depuis que celui-ci a été demandé en premier, je pense que vous devriez appeler l'autre le dupe – Claudiu

Répondre

2

Lookups est ce qu'on appelle généralement un localisateur de service et il est généralement considéré comme un anti-modèle ces jours-ci, mais était assez commun il y a 5-8 ans. La méthode singleton() est une méthode statique publique sur la classe qui est utilisée pour trouver essentiellement une référence à un objet fondamentalement global. Imaginez qu'il ressemble à:

public class Lookups { 
    public static SomeObject singleton(InputObject obj) { 
    // use the parameter to return some other object 
    } 
} 

La raison pour laquelle il est considéré comme un anti-modèle est qu'il peut rendre extrêmement difficile à tester l'unité ou sections simulacres de votre code. Dans Java DI ("injection de dépendance") les cadres comme le printemps ont tendance à être favorisés par cette approche.

+0

Et quel modèle simple peut remplacer cet anti modèle? – joseph

+0

@joseph est-ce une application Web, une application de bureau, autre chose? Utilisez-vous déjà Spring? – cletus

+0

c'est bureau, je n'utilise que netbeans PLATFORM. Je vais par le tutoriel sur platform.netbeans.org, et je n'ai aucune idée, quel modèle je peux utiliser au lieu de ces recherches difficilement compréhensibles. – joseph

3

Vous pouvez consulter le NetBeans Platform's Lookup apis pour obtenir un aperçu du motif de conception. Vous pouvez également read about the class named Lookups, pour plus de détails sur ses méthodes.

Fondamentalement, cette API crée un objet de recherche qui ne contient qu'un seul objet. Lorsque la recherche Vous appelez sur cet objet retournera uniquement l'objet qui a été utilisé pour initialiser l'objet, s'il implémente/étend l'objet qui est utilisé dans la requête.

Le motif de recherche est une partie très importante de la plate-forme NetBeans.