[Java] Motif singleton

Notes d'apprentissage Java

Modèle d'une tonne

Basique (prémisse d'utilisation à partir d'un seul thread)

SingletonClass.java


package com.company;

public class SingletonClass {
    private static SingletonClass instance = new SingletonClass();

    private SingletonClass() {}

    public static SingletonClass getInstance() {
        return instance;
    }
}

Main.java


package com.company;

public class Main {
    public static void main(String[] args) {
        SingletonSample obj = SingletonSample.getInstance();
    }
}

Prise en charge multi-thread

Comme mentionné ci-dessus, les instances sont créées lorsque la classe est utilisée pour la première fois, pas lorsqu'elle est chargée, donc si vous autorisez les appels multithread à getInstance (), vous aurez plusieurs instances. Peut être créé.

Ce qui suit peut être mentionné comme méthode de contre-mesure.

Utiliser le modificateur synchronisé


class Singleton {
    static Singleton instance = null;
    public static synchronized Singleton getInstace() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

Initialize-on-Demand_Holder_Modèle de classe


class Singleton {
    private Singleton(){}

    public static Singleton getInstace() {
        return SingletonHolder.INSTANCE;
    }

    private static class SingletonHolder {
        private static final Singleton INSTANCE = new Singleton();
    }
}

référence Modèle de conception "Singleton" --Qiita Ne créez pas plusieurs instances de l'objet MSC07-J. Singleton

Relation

[C # 6.0 ~] Implémentation du modèle singleton --Qiita

référence

Java Singleton Design Pattern-Qiita Ne créez pas plusieurs instances de l'objet MSC07-J. Singleton

Recommended Posts

[Java] Motif singleton
Motif singleton
Motif singleton
[Java] Modèle de stratégie
modèle de rappel java
Modèle de conception ~ Singleton ~
[Java] Modèle d'adaptateur
Mémo de modèle Java
Mon modèle DAO (Java)
[Java] À propos de la classe Singleton
Modèle de générateur (Java effectif)
Résumé du modèle de conception Java
[Design pattern] Bibliothèque de base Java
Java
Modèle de stratégie Enum en Java
[Java] Dessine un motif simple
Java
Comprendre le modèle Singleton en comparant le code Java et JavaScript
Collection de modèles JNA (Java Native Access)
Le calendrier Java n'est pas un singleton.
Modèle de conception Java pour débutant (modèle de méthode d'usine)
Modèle de prototype
Apprendre Java (0)
Étudier Java ―― 3
[Java] tableau
Java protégé
Motif de souvenir
[Java] Annotation
Module [Java]
Tableau Java
Motif médiateur
Modèle d'itérateur
Étudier Java ―― 9
Java scratch scratch
Astuces Java, astuces
Motif composite
Méthodes Java
Méthode Java
java (constructeur)
Tableau Java
Modèle d'observateur
java (remplacement)
java (méthode)
Modèle de constructeur
Journée Java 2018
Chaîne Java
Modèle de pont
Java statique
Sérialisation Java
java débutant 4
JAVA payé
Étudier Java ―― 4
Modèle de commande
Java (ensemble)
[Java] compareTo
Étudier Java -5
Modèle de constructeur
java réfléchissant 获 获 举
java (interface)
Mémorandum Java