Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Classe Java Singleton

Classe Java Singleton

Dans ce tutoriel, nous allons apprendre à implémenter Singleton Design Pattern en Java à l'aide d'exemples.

En Java, Singleton est un modèle de conception qui garantit qu'une classe ne peut avoir qu'un seul objet.

Pour créer une classe singleton, une classe doit implémenter les propriétés suivantes :

Exemple :syntaxe de classe Java Singleton

class SingletonExample {

   // private field that refers to the object
   private static SingletonExample singleObject;
                                              
   private SingletonExample() {
      // constructor of the SingletonExample class
   }

   public static SingletonExample getInstance() {
      // write code that allows us to create only one object
      // access the object as per our need
   }
}

Dans l'exemple ci-dessus,

  • private static SingletonExample singleObject - une référence à l'objet de la classe.
  • private SingletonExample() - un constructeur privé qui limite la création d'objets en dehors de la classe.
  • public static SingletonExample getInstance() - cette méthode renvoie la référence au seul objet de la classe. Puisque la méthode static , on peut y accéder en utilisant le nom de la classe.

Utilisation de Singleton en Java

Les singletons peuvent être utilisés lorsque vous travaillez avec des bases de données. Ils permettent de créer un pool de connexion pour accéder à la base de données tout en réutilisant la même connexion pour tous les clients. Par exemple,

class Database {
   private static Database dbObject;

   private Database() {      
   }

   public static Database getInstance() {

      // create object if it's not already created
      if(dbObject == null) {
         dbObject = new Database();
      }

       // returns the singleton object
       return dbObject;
   }

   public void getConnection() {
       System.out.println("You are now connected to the database.");
   }
}

class Main {
   public static void main(String[] args) {
      Database db1;

      // refers to the only object of Database
      db1= Database.getInstance();
      
      db1.getConnection();
   }
}

Lorsque nous exécutons le programme, la sortie sera :

You are now connected to the database.

Dans notre exemple ci-dessus,

  • Nous avons créé une classe singleton Base de données .
  • Le dbObject est un champ de type classe. Cela fera référence à l'objet de la classe Database .
  • Le constructeur privé Database() empêche la création d'objets en dehors de la classe.
  • La méthode de type de classe statique getInstance() renvoie l'instance de la classe au monde extérieur.
  • Dans le Principal classe, nous avons la variable de type classe db1 . Nous appelons getInstance() en utilisant db1 pour obtenir le seul objet de la Database .
  • La méthode getConnection() accessible uniquement à l'aide de l'objet de la Base de données .
  • Depuis la base de données ne peut avoir qu'un seul objet, tous les clients peuvent accéder à la base de données via une seule connexion.

Singleton est un modèle de conception plutôt qu'une fonctionnalité spécifique à Java. Un modèle de conception est comme notre bibliothèque de codes qui comprend diverses techniques de codage partagées par les programmeurs du monde entier.

Il est important de noter qu'il n'y a que quelques scénarios (comme la journalisation) où les singletons ont du sens. Nous vous recommandons d'éviter complètement d'utiliser des singletons si vous n'êtes pas sûr de les utiliser ou non. En savoir plus :Qu'est-ce qui est si mauvais à propos de Singleton ?


Java

  1. Mot-clé Java final
  2. Opérateur instanceof Java
  3. Classe statique imbriquée Java
  4. Classe anonyme Java
  5. Réflexion Java
  6. Classe Java ObjectOutputStream
  7. Génériques Java
  8. Classe de fichier Java
  9. Java - Objet et classes