[JAVA] Was ist Instanzsteuerung?

Einführung

<! - Beschreibung des Anfangs und der Gliederung-> Tauchen Sie ein in die folgenden Inhalte, die in Effective Java 2nd Edition P6 enthalten sind.

Die Fähigkeit statischer Factory-Methoden, dasselbe Objekt zurückzugeben, unabhängig davon, wie oft es aufgerufen wird, kann auch verwendet werden, um genau zu steuern, welche Instanzen zu einem bestimmten Zeitpunkt vorhanden sind. Die Klasse, die dieses Steuerelement ausführt, wird als ** instanzgesteuert ** (instanzgesteuert) bezeichnet.

Inhaltsverzeichnis

<! - Titel und Ankernamen bearbeiten->

  1. [Wie ist der Zustand schließlich? ](#Was ist das)
  2. [Was ist ein konkretes Beispiel? ](#Zum Beispiel)
  3. Kann ich mit Enum in C # einen Singleton erstellen?
  4. Referenz

<! - Jedes Kapitel->

Wie ist der Zustand schließlich?

Was ist ein konkretes Beispiel?

Singleton

Eine Klasse, die garantiert ** 1 ** Instanzen hat.

Das Folgende ist ein Beschreibungsbeispiel in Java

Singleton.cs


//In Enum implementiertes Muster
//Versiegelt, um eine nicht vererbbare Klasse zu werden
public class SingletonClass
{
    //Verhindern Sie, dass es von außen verändert wird
    private static final SingletonClass INSTANCE = new SingletonClass();

    //Verhindern Sie, dass es von außen erzeugt wird
    private SingletonClass() { //Initialisierungsprozess};

    //Bekomme Instanz
    public static SingletonClass GetInstance() {return INSTANCE;}

}

Das Folgende ist ein Beschreibungsbeispiel in C #

Singleton.cs


//Singleton-Muster
public class SingletonClass
{
    //Verhindern Sie, dass es von außen verändert wird
    private static SingletonClass _singleInstance = new SingletonClass();

    //Bekomme Instanz
    public static SingletonClass GetInstance(){ return _singleInstance; }

    //Verhindern Sie, dass es von außen erzeugt wird
    private SingletonClass(){ //Initialisierungsprozess}
}

Enum Eine Klasse, die garantiert ** n ** Instanzen hat. ** * Ergänzung: Nur Java ** </ font>

Enum.java


enum Season
{
    Spring,
    Summer,
    Autumn,
    Winter
}

Nachtrag: Es ist jedoch nicht garantiert, dass C # Enum n Instanzen enthält **. ** ** ** Im Gegensatz zu Java, das als Klasse implementiert ist, ist Enum in C # nur eine benannte Ganzzahl, wie der C-Aufzählungstyp. Daher gibt es keine Java-ähnliche Garantie. Weitere Informationen finden Sie im Kommentarbereich.

Kann ich mit Enum in C # eine Tonne machen?

Es ist eine Schlange, aber ich bin neugierig, also werde ich nachforschen. In Java können Sie einen Singleton mit Enum wie folgt implementieren.

EnumSingleton.java



public enum Singleton {
    INSTANCE;

    public void execute (String arg) {
        //Implementieren Sie die gewünschte Verarbeitung, z. B. die Instanzerfassung
    }
}

Ist es möglich, Singleton mit Enum auch in C # zu implementieren? Das ist zweifelhaft. ~~ Als Ergebnis der Untersuchung stellte sich heraus, dass ** C # keine Felder und Methoden in Enum selbst definieren kann, so dass es schwierig ist, Singleton wie Java zu machen. ** ** ** Wenn Sie es mit Enum implementieren möchten, müssen Sie die ** Erweiterungsmethode ** verwenden, wie unten gezeigt ~~ Nachtrag: Wie im Kommentar erwähnt, ist Enum in C # nur eine benannte Ganzzahl, daher können wir die Begrenzung der Anzahl der Instanzen nicht garantieren. Daher kann ** C # Singleton nicht mit Enum ** implementieren

Verweise

Recommended Posts

Was ist Instanzsteuerung?
Was ist @ (Instanzvariable)?
[Ruby] Was ist eine Instanz?
Was ist Cubby?
Was ist null? ]]
Was ist java
Was ist Schlüsselumhang?
Was ist Maven?
Was ist Jackson?
Was ist Selbst
Was ist Jenkins?
Was ist ArgumentMatcher?
Was ist IM-Jonglieren?
Was ist params
Was ist SLF4J?
Was ist Fassade? ??
Was ist Java <>?
Was ist Gradle?
Was ist POJO?
Was ist java
Was ist centOS?
Was ist RubyGem?
Was ist before_action?
Was ist Docker?
Was ist Byte?
Was ist Tomcat?
Was ist Maven Assembly?
Was ist Docker-Compose?
Was ist ein Konstruktor?
Was ist vue cli
Was ist eine Schnittstelle?
Was ist Rubys Selbst?
Was ist harte Codierung?
Was ist ein Stream?
Was ist Rubys attr_accessor?
Was ist Java-Kapselung?
Was ist die Erlaubnis verweigert?
Was ist ein Initialisierer?
Was ist Spring Tools 4?
Was ist ein Operator?
Was ist Objektorientierung?
Was ist Guavas @VisibleForTesting?
Was ist ein MVC-Modell?
Was ist eine Anmerkung?
Was ist Java-Technologie?
Was ist Java API-Java?
Was ist Gradles Artefakt?
Was ist JPA-Prüfung?
[Java] Was ist flatMap?
Was ist ein Servlet?
Was ist Webentwicklung?
[Java] Was ist ArrayList?
Was ist eigentlich objektorientiert?
Was ist HttpSession session = request.getSession ();
Was ist Java Assertion? Zusammenfassung.