[GO] [Viererbande] Design Pattern Learning - Singleton

Singleton - Eine Karte

** Inhaltsverzeichnis ** Das letzte Muster für die Erzeugung ist eine einzelne Tonne. Ich denke, das ist ein Muster, mit dem jeder vertraut ist. Ich habe das Gefühl, dass das erste Designmuster, das ich gelernt habe, eine einzelne Tonne war.

Klassen, die DB-Verbindungen bereitstellen, und Klassen, die Assets abrufen, werden im Allgemeinen in diesem Muster implementiert. Garantiert die Eindeutigkeit einer Instanz dieser Klasse im Programm.

Zweck

Es garantiert, dass es nur eine Instanz für eine Klasse gibt, und bietet eine globale Möglichkeit, darauf zuzugreifen.

Komponente

· Eine Klasse, in der nur eine Singleton-Instanz erstellt wird

Implementierung

Wenn Sie dieses Muster mit Kotlin codieren, wird es in einer einfachen Form vorliegen, wie unten gezeigt. Ich bin mir also nicht sicher, also werde ich es mit Java codieren.

SingletonObject.kt


package singleton

object SingletonObject {
    var str = ""

    fun print() {
        println("Ausgabeergebnis:$str")
    }
}

Erstellen Sie Bilder und Musikdateien von mehreren Bildschirmen über Singleton-Objekte.

Klassen, die nur eine Singleton-Instanz generieren

Singleton-Objekt

JavaSingletonObject.java


package singleton;

public class JavaSingletonObject {
    /**
     *Als statisch definiert und die Instanz der eigenen Klasse eindeutig machen
     */
    public static JavaSingletonObject instance = new JavaSingletonObject();
    private String address = "/assets/temp";
    enum Assets {
        IMAGE1("image_1"),
        IMAGE2("image_2"),
        AUDIO1("audio_1"),
        AUDIO2("audio_2");

        private final String value;

        Assets(final String value) {
            this.value = value;
        }
    }

    /**
     *Definieren Sie den Konstruktor als privat, damit keine neue Instanz erstellt werden kann.
     */
    private JavaSingletonObject(){
        System.out.println("Verbindung:" + address);
    }

    public String getAssets(Assets target) {
        System.out.println("Materialerfassung mit Singleton-Objekt:" + target.value);
        return target.value;
    }
}

Bildschirm 1 Klasse

DisplayOne.kt


package singleton

class DisplayOne {
    fun draw() {
        println("In User1${JavaSingletonObject.instance.getAssets(JavaSingletonObject.Assets.IMAGE1)}Zeichnen!!")
    }
}

Bildschirm 2 Klasse

DisplayTwo.kt


package singleton

class DisplayTwo {
    fun start() {
        println("In User2${JavaSingletonObject.instance.getAssets(JavaSingletonObject.Assets.AUDIO1)}abspielen!!")
    }
}

Nutzer

Bildschirmverwaltungsklasse

Manager.kt


package singleton

class Manager {
    init {
        DisplayOne().draw()
        DisplayTwo().start()
    }
}

Damit ist die Implementierung des Singleton-Musters abgeschlossen. Dieser Prozess sollte nur einmal ausgeführt werden, da die Verbindung zu Assets im Konstruktor der Klasse "JavaSingletonObject" hergestellt wird.

Da der Konstruktor als privat definiert ist, ist es auch nicht möglich, eine neue Instanz der Klasse zu erstellen, und die Eindeutigkeit ist garantiert.

Ausgabeergebnis

[output]
Verbindung:/assets/temp
Materialerfassung mit Singleton-Objekt: Bild_1
Bild in User1_Zeichne 1!!
Materialerfassung mit Singleton-Objekt: Audio_1
Audio in User2_Spielen Sie 1!!

Recommended Posts

[Viererbande] Design Pattern Learning - Singleton
[Viererbande] Designmuster lernen
[Viererbande] Design Pattern Learning --Decorator
[Viererbande] Designmuster lernen --Besucher
[Viererbande] Design Pattern Learning - Vermittler
[Viererbande] Designmusterlernen --Iterator
[Viererbande] Designmuster lernen - Fassade
[Viererbande] Design Pattern Learning - Composite
[Viererbande] Designmuster lernen - Prototyp
[Viererbande] Designmuster lernen - Andenken
[Viererbande] Designmuster lernen - Staat
[Vierergruppe] Design Pattern Learning - Interpreter
[Viererbande] Design Pattern Learning - Builder
[Viererbande] Designmuster lernen - Brücke
[Viererbande] Designmuster lernen --Proxy
[Viererbande] Design Pattern Learning - Strategie
[Viererbande] Designmuster lernen --Adapter
[Viererbande] Design Pattern Learning - Beobachter
[Viererbande] Designmuster lernen - Befehl
[Viererbande] Designmuster lernen - Fluggewicht
[Viererbande] Designmusterlernen - Abstract Factory
[Viererbande] Designmuster lernen - Fabrikmethode
[Viererbande] Designmuster lernen - Kette der Verantwortung
[Viererbande] Design Pattern Learning - Template-Methode
Entwurfsmuster #Singleton
Gang of Four (GoF) -Muster in Python
Lernen Sie das Entwurfsmuster "Singleton" mit Python
Entwurfsmuster #Builder
Entwurfsmuster #Adapter
Entwurfsmuster #Decorator
Lernen der Mustererkennung im Video Teil 1 Bereich der Mustererkennung
Entwurfsmuster #Observer
Entwurfsmuster #Facade
Entwurfsmuster #Strategie
Entwurfsmuster #Proxy
Ich habe ein Designmuster in der Kotlin Singleton Edition geschrieben
Lernen Sie das Entwurfsmuster "Chain of Responsibility" in Python
Singleton-Muster in Java
Singleton-Muster in Python
Entwurfsmuster #Factory-Methode
Deep Learning 1 Übung des Deep Learning
Entwurfsmuster # Template-Methode
Die Geschichte, dass GoF-Designmuster nichts anderes sind als "Einführung abstrakter Ebenen"
Singleton-Musterzusammenfassung der Einführung in Entwurfsmuster, die in Java gelernt wurden