Motif singleton en Java

introduction

Présentation des modèles de conception de [GoF](https://ja.wikipedia.org/wiki/Gang of for _ (Information Engineering)) ["Introduction aux modèles de conception appris dans le langage Java augmenté et révisé"]( https://www.amazon.co.jp/ Édition révisée supplémentaire Introduction aux modèles de conception appris en langage Java-Yuki-Hiroshi / dp / 4797327030 / ref = pd_lpo_sbs_14_t_0? _ Encoding = UTF8 & psc = 1 & refRID = 2ZE4GPYNN55JGDR5QMHP) Je vais résumer sur.

Motif singleton

Qu'est-ce que Singleton

Traduit en japonais, il s'agit d'une seule carte de Trump, ce qui signifie qu'il n'y en a qu'une dans l'ensemble. Pour cette raison, le ** modèle qui garantit qu'il n'y a qu'une seule instance dans tout le système ** est appelé le ** modèle Singleton **.

Personnage

Les classes qui apparaissent dans le diagramme de classes ci-dessous sont utilisées dans le modèle Singleton. Cependant, il n'existe qu'une seule des classes Singleton. image.png

Exemple concret

À titre d'exemple concret, l'explication sera basée sur la classe singleton et la classe d'exécution.

Classe d'implémentation

Singleton.java


package singleton;

public class Singleton {
	// 1.champ statique(Variable de classe)Définir singleton comme
	private static Singleton singleton = new Singleton();

	// 2.constructeur privé
	private Singleton() {
		System.out.println("Instanciation réussie");
	}

	// 3.Renvoyer une instance de singleton
	public static Singleton getInstance() {
		return singleton;
	}
}

Les points sont les trois points suivants. ** 1. ** singleton est défini comme une variable de classe privée. ** 2. ** Le constructeur est privé et ne peut pas être appelé par d'autres classes. (ne peut pas nouveau) ** 3. ** Définit une méthode getInstance () qui renvoie une instance singleton.

Je vais donner une explication supplémentaire. Tout d'abord, la classe externe appelle la méthode publique getInstance (). Si elle est appelée pour la première fois à ce moment-là, la classe Singleton sera initialisée et une instance de la classe Singleton ne sera créée qu'une seule fois à ce moment-là. Après cela, lorsque la méthode getInstance () est appelée, l'instance déjà créée de la classe Singleton est renvoyée. La sortie est effectuée dans le constructeur afin que vous puissiez voir que l'instance a été créée avec succès, mais elle n'est généralement pas nécessaire.

Classe d'exécution

Main.java


package singleton;

public class Main {
    public static void main(String[] args) {
        System.out.println("***Démarrer la classe d'exécution***");
        Singleton obj1 = Singleton.getInstance();
        Singleton obj2 = Singleton.getInstance();
        if (obj1 == obj2) {
            System.out.println("obj1 is obj2");
        } else {
            System.out.println("obj1 is not obj2");
        }
        System.out.println("***Fin de la classe d'exécution***");
    }
}

Résultat d'exécution

Le résultat de l'exécution de Main.java est le suivant. ʻObj1 is obj2` est affiché, et vous pouvez confirmer que vous pouvez obtenir la même instance.

Résultat d'exécution


***Démarrer la classe d'exécution***
Instanciation réussie
obj1 is obj2
***Fin de la classe d'exécution***

mérite

En utilisant le modèle Singleton, vous pouvez être assuré qu'il n'y a qu'une seule instance dans l'ensemble de votre système. En faisant cela, vous pouvez empêcher plusieurs instances de s'emmêler et de provoquer des bogues inattendus.

Résumé

Vous avez découvert le modèle Singleton, qui garantit qu'il n'y a qu'une seule instance. L'exemple de code est téléchargé ci-dessous, veuillez donc vous y référer si vous le souhaitez.

En outre, d'autres modèles de conception sont résumés ci-dessous, veuillez donc vous y référer également.

Les références

Recommended Posts

Motif singleton en Java
Modèle de façade en Java
Modèle de poids mouche en Java
Motif singleton en Python
Modèle d'observateur en Java
Modèle d'itérateur en Java
Modèle de décorateur en Java
Modèle de prototype en Java
Modèle de proxy en Java
Modèle de méthode de modèle en Java
Implémenter le modèle Singleton en Python
Modèle de chaîne de responsabilité en Java
Modèle de conception #Singleton
Autorisations Linux sur Java
Utiliser DataFrame en Java
Modèle de visiteur en Python
J'ai écrit un modèle de conception dans l'édition Kotlin Singleton
Résumé des modèles singleton de l'introduction aux modèles de conception appris en langage Java
Mettre en œuvre un test piloté par table en Java
Détectez et traitez les signaux en Java.
Mise en œuvre du tri à bulles en Java (BubbleSort)
Résumé du modèle de conception Java GoF
Chevauchement d'expressions régulières en Python et Java
Apprenez le modèle de conception "Prototype" avec Python
Apprenez le modèle de conception "Builder" avec Python
[Gang of Four] Apprentissage des modèles de conception --Singleton
Apprenez le modèle de conception "Flyweight" en Python
Apprenez le modèle de conception "Observer" en Python
Apprenez le modèle de conception "Memento" avec Python
Apprenez le modèle de conception "Proxy" en Python
Rendement Python express en JavaScript ou Java
Appliquer le formateur Google Java Style avec IntelliJ
Apprenez le modèle de conception "Commande" en Python
Différences entre la syntaxe Python et Java
Recevoir des e-mails à l'aide de l'API Gmail en Java
Apprenez le modèle de conception "Visiteur" avec Python
Apprenez le modèle de conception "Bridge" avec Python
Apprenez le modèle de conception "Mediator" avec Python
Apprenez le modèle de conception "Décorateur" avec Python
Apprenez le modèle de conception "Iterator" avec Python
Apprenez le modèle de conception «Stratégie» avec Python
Apprenez le modèle de conception "Composite" avec Python
Apprenez le modèle de conception "Singleton" avec Python
Apprenez le modèle de conception "État" en Python
Lançons le script Bash en Java
Apprenez le modèle de conception "Adapter" avec Python