Design pattern Singleton en Javascript

Singleton est un modèle de design pattern spécial où une seule instance d’une classe peut exister. Cela fonctionne comme ceci – si aucune instance de la classe singleton n’existe alors une nouvelle instance est créée et retournée mais si une instance existe déjà alors la référence à l’instance existante est retournée.

Dans cet exemple, nous avons une classe de base de données qui est un Singleton. Tout d’abord, nous créons un objet mongo en utilisant le nouvel opérateur pour invoquer le constructeur de classe Database. Cette fois, un objet est instancié parce qu’aucun n’existe déjà. La deuxième fois, lorsque nous créons l’objet mysql, aucun nouvel objet n’est instancié mais la référence à l’objet qui a été instancié précédemment, c’est-à-dire l’objet mongo.

class Database {
  constructor(data) {
    if (Database.exists) {
      return Database.instance;
    }
    this._data = data;
    Database.instance = this;
    Database.exists = true;
    return this;
  }

  getData() {
    return this._data;
  }

  setData(data) {
    this._data = data;
  }
}

// usage
const mongo = new Database('mongo');
console.log(mongo.getData()); // mongo

const mysql = new Database('mysql');
console.log(mysql.getData()); // mongo

Nouveau Tutoriel

Newsletter

Ne manquez jamais les nouveaux conseils, tutoriels et autres.

Pas de spam, jamais. Nous ne partagerons jamais votre adresse électronique et vous pouvez vous désabonner à tout moment.