Le patron
Singleton
Cours DP– Mme Sameh HBAIEB
Le patron Singleton: Présentation
L’objectif du patron Singleton est de garantir qu'une classe ne possède
qu'une seule et unique instance, et de fournir un point d’accès global à
celle‐ci.
Indications d’utilisation
Il doit y avoir exactement une instance d’une classe ;
cette instance est accessible globalement ;
Exemples d’utilisation :
Fenêtre principale d’une IHM
Accès à un fichier de configuration
Accès à une base de données
Cours DP– Mme Sameh HBAIEB
Le patron Singleton:l Principe
Comment pouvez‐vous empêcher d’autres développeurs de créer de
nouvelles instances de votre classe?
Créer un seul constructeur avec un accès privé
Cours DP– Mme Sameh HBAIEB
Modèle de représentation du patron Singleton
Etapes :
Rendre privé le constructeur,
Construire une instance privée de la classe
comme attribut statique de la classe,
Fournir une méthode publique d’accès à
cette instance.
Cours DP– Mme Sameh HBAIEB
Exemple d’implémentation du patron Singleton
public class SingleObject {
//create an object of SingleObject
private static SingleObject instance = new SingleObject();
//make the constructor private so that this class cannot be
//instantiated
private SingleObject(){}
//Get the only object available
public static SingleObject getInstance(){
return instance;
}
}
Cours DP– Mme Sameh HBAIEB
Exercice d’application
1. Ecrire un programme java qui permet de créer une instance de Base de
données unique.
Cette base de données possède deux attributs « record » (n°de
l’enregistrement courant) et « name » (nom de la BdD). Une méthode,
«editRecord », qui permet d’éditer un enregistrement dans la BDD (en affichant
seulement que l’enregistrement subit une opération de modification) et une
méthode « getName », qui retourne le nom de la BDD.
2. Testez dans un programme l’unicité de la BdD.
Cours DP– Mme Sameh HBAIEB