1/10/2024
The only limit to our future fulfillment will be our doubts today. - Franklin D. Roosevelt
Le design pattern singleton est un modèle de conception qui garantit qu'une classe n'a qu'une seule instance et fournit un point d'accès global à cette instance.
Le pattern Singleton est l'un des design patterns les plus simples mais aussi les plus utiles en programmation orientée objet. En JavaScript, il est particulièrement intéressant car il permet de gérer efficacement des ressources partagées et de contrôler l'accès à une instance unique d'une classe.
Le design pattern singleton est un modèle de conception qui garantit qu'une classe n'a qu'une seule instance et fournit un point d'accès global à cette instance. Cela peut être utile dans de nombreuses situations, par exemple :
Voici comment on peut implémenter un Singleton en JavaScript moderne :
singleton.jsclass Singleton {
constructor() {
if (Singleton.instance) {
return Singleton.instance;
}
Singleton.instance = this;
this.data = [];
}
addItem(item) {
this.data.push(item);
}
getItems() {
return this.data;
}
}
// Figer l'instance pour empêcher toute modification
Object.freeze(Singleton.instance);
Dans cet exemple :
Singleton
.Singleton.instance
.addItem
et getItems
) pour démontrer l'utilisation.Object.freeze
pour empêcher toute modification de l'instance.Voici comment utiliser notre Singleton :
const instance1 = new Singleton();
const instance2 = new Singleton();
console.log(instance1 === instance2); // true
instance1.addItem("A");
instance2.addItem("B");
console.log(instance1.getItems()); // ["A", "B"]
console.log(instance2.getItems()); // ["A", "B"]
Comme vous pouvez le voir, instance1
et instance2
font référence à la même instance. Les modifications apportées à l'une sont reflétées dans l'autre.
Le pattern Singleton est un outil puissant dans la boîte à outils d'un développeur JavaScript. Bien qu'il doive être utilisé avec parcimonie, il peut résoudre efficacement certains problèmes de conception, en particulier lorsqu'une seule instance d'une classe est nécessaire pour coordonner les actions dans tout le système.
Comme pour tous les patterns de conception, il est important de bien comprendre les avantages et les inconvénients du Singleton avant de l'utiliser dans votre code. Utilisé à bon escient, il peut grandement améliorer la structure et l'efficacité de votre application.