Singleton
DéfinitionS'assurer qu'une classe ne possède qu'une instance et fournit un point global pour y accéder.
Diagramme de classe
Les classes et/ou objets qui participent à ce pattern sont:
Singleton
- Définit une méthode getInstance() qui permet aux client d'accéder à l'unique instance. getInstance() est une méthode de classe.
- Est responsable de la création et de la maintenance de son unique instance.
Exemple Concret
Singleton
public class MonCache {
private static Map cache ;
private static volatile MonCache instance;
//Constructeur protected -> non accessible depuis l'extérieur
protected MonCache() {
cache = new HashMap() ;
}
//Unique point d'accès
public static MonCache getInstance() {
synchronized (MonCache.class)
if (instance == null) {
instance = new MonCache();
}
}
return instance;
}
//Méthode spécifique (rien à voir avec le pattern Singleton)
public String getValeur(String key) {
//Valeur non présente dans le cache -> on va la chercher
if (! cache.containsKey(key)){
cache.put(key, ConfigDlg.getString(key)) ;
}
return (String) cache.get(key) ;
}
}
Client
String maValeur = MonCache.getInstance().getValeur("maCle") ;