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 IntervenantsLes 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") ;