[JAVA] Modèle de conception ~ Singleton ~

1.Tout d'abord

Voici un résumé du ** modèle Singleton ** dans le modèle de conception GoF.

2. Quel est le modèle Singleton?

--Singleton signifie ** un ensemble avec un seul élément **.

3. Exemple de diagramme de classes

Singleton.PNG

4. Exemple de programme

Un programme qui crée une instance singleton.

4-1. Classe Singleton

Une classe qui ne renvoie qu'une seule instance. Le constructeur de la classe Singleton est privé. Cela interdit d'appeler le constructeur depuis l'extérieur de la classe Singleton.

Singleton.cs


public class Singleton {

	private static Singleton singleton = new Singleton();

	private Singleton() {
		System.out.println("Créé une instance.");
	}

	public static Singleton getInstance() {
		return singleton;
	}
}

4-2. Classe principale

Cette classe effectue le traitement principal.

Main.cs


public class Main {
	public static void main(String[] args) {
		Singleton obj1 = Singleton.getInstance();
		Singleton obj2 = Singleton.getInstance();
		if (obj1 == obj2) {
			System.out.println("obj1 et obj2 sont la même instance.");
		} else {
			System.out.println("obj1 et obj2 ne sont pas la même instance.");
		}
	}
}

4-3. Résultat de l'exécution

Créé une instance.
obj1 et obj2 sont la même instance.

5. Avantages

Le modèle Singleton limite le nombre d'instances. Lorsqu'il y a plusieurs instances, les instances peuvent interagir les unes avec les autres et créer des bogues inattendus. Cependant, si vous garantissez que vous n'avez qu'une seule instance, vous pouvez programmer avec cette condition préalable.

  1. GitHub

7. Liste des modèles de conception

8. Référence

Cet article et exemple de programme ont été créés à partir des livres suivants.

C'était très facile à comprendre et j'ai beaucoup appris. Je vous remercie. Les explications détaillées des modèles de conception et des exemples de programmes sont écrites, veuillez donc également consulter les livres.

Recommended Posts

Modèle de conception ~ Singleton ~
Motif singleton
Motif singleton
Modèle de conception ~ Constructeur ~
Modèle de conception ~ Visiteur ~
Modèle de conception Java
Modèle de conception ~ Proxy ~
Modèle de conception ~ État ~
Modèle de conception ~ Stratégie ~
Modèle de conception ~ Composite ~
Modèle de conception (2): constructeur
Modèle de conception (1): AbstractFactory
[Java] Motif singleton
Modèle de conception ~ Commande ~
Modèle de conception ~ Itérateur ~
Modèle de conception ~ Façade ~
Modèle de conception ~ Pont ~
Modèle de conception ~ Médiateur ~
Modèle de conception ~ Décorateur ~
Modèle de conception ~ Interprète ~
Modèle de conception ~ Observateur ~
Modèle de conception ~ Prototype ~
Modèle de conception ~ Memento ~
Modèle de conception ~ Adaptateur ~
Modèle de conception ~ Poids mouche ~
Modèle de conception C ++ (modèle TemplateMethod)
Modèle de conception ~ Méthode d'usine ~
Modèle de conception ~ Usine abstraite ~
Résumé du modèle de conception du GoF
Modèle de conception ~ Méthode de modèle ~
Résumé du modèle de conception Java
Modèle de conception ~ Chaîne de responsabilité ~
[Design pattern] Bibliothèque de base Java
Modèle de conception par la méthode Ruby Template Mémo de modèle
Modèle de conception mâché C #: TemplateMethod
Exemple d'application du modèle de conception (n ° 1)
Modèle de conception Java pour débutant (modèle de méthode d'usine)
Modèle de prototype
Motif de souvenir
Motif médiateur
Modèle d'itérateur
Motif composite
Modèle d'observateur
Modèle de constructeur
Modèle de pont
Modèle de commande
Modèle de constructeur
Modèle de stratégie
Modèle d'itérateur
Modèle de visiteur
Modèle d'adaptateur
Modèle de proxy
Modèle de stratégie
Motif composite
Modèle de prototype
[Modèle de conception] Logique commune avec la méthode de modèle
Modèle de façade
Motif décorateur
Modèle de poids mouche
Motif décorateur
Modèle de médiateur