[JAVA] statische Werksmethode Teil 1

Ich bin ein neuer Android-Ingenieur. Ich habe kürzlich Effective Java gelesen und das Schlüsselwort ** static factory method ** gefunden.

statische Fabrikmethode

EffectiveJava sagt

Nur eine statische Methode, die eine Instanz der Klasse zurückgibt

... anscheinend ...

Wenn Sie sich beispielsweise das Codebeispiel der Booleschen Klasse ansehen

public static Boolean valueOf(boolean b) {
    return b ? Boolean.TRUE : Boolean.FALSE;
}

Diese Methode konvertiert einen Basisdatenwert namens boolean in eine boolesche Objektreferenz.

Normalerweise muss der Client einen öffentlichen Konstruktor durchlaufen, damit der Client eine Instanz der Klasse abruft. Wenn Sie jedoch eine statische Factory-Methode verwenden, können Sie eine Instanz über eine statische Methode abrufen.

Obwohl die Namen ähnlich sind, unterscheiden sie sich übrigens von der Factory-Methode, bei der es sich um eine Art Entwurfsmuster handelt. Verwechseln Sie sie daher nicht.

Statische Factory-Methode in Singleton

Da die Geschichte des Entwurfsmusters herauskam, werde ich es als ein Tonnenmuster schreiben.

Stellen Sie sicher, dass nur eine Instanz dieser Klasse erstellt wird

Es gibt ein Entwurfsmuster.

In Java können Sie häufig den folgenden Schreibstil als Code sehen, um dies zu realisieren.

public class Singleton {

    private static Singleton singleton = new Singleton();
    
    private Singleton() {
    }
   
    public static Singleton getInstance() {
        return singleton;
    }
}

In diesem Fall ist getInstance () eine statische Factory-Methode. Selbst wenn Sie nicht über die statische Factory-Methode Bescheid wissen, kennen viele Leute das Singleton-Muster. Ich denke, dieses Beispiel gibt Ihnen ein Bild.

Allgemeiner Name der Methode

Es gibt auch eine Namenskonvention, denn wenn jede Person den Methodennamen so oft entscheidet, wie sie möchte, ist er nicht von anderen statischen Methoden zu unterscheiden. Im Allgemeinen gibt es die folgenden Methodennamen.

Methodenname Rolle
valueOf Gibt eine Instanz mit demselben Wert wie der Parameter zurück. Typkonvertierung.
of Methodenname ohne Wert von valueOf
getInstance Gibt die durch den Parameter angegebene Instanz zurück, hat jedoch nicht denselben Wert. Im Fall von Singleton nimmt es kein Argument an und gibt nur eine Instanz zurück.
newInstance Ähnlich wie getInstance, außer dass alle zurückgegebenen Instanzen getrennt sind.
getType Ähnlich wie getInstance, außer dass sich die Factory-Methode in einer anderen Klasse als die Zielklasse befindet.
newType Ähnlich wie newInstance, außer dass sich die Factory-Methode in einer anderen Klasse als die Zielklasse befindet.

Wenn Sie diese statischen Methoden in Ihrer Klasse haben, können Sie erkennen, dass es sich um statische Factory-Methoden handelt.

Sie können diese Methoden auch in Standardklassen anzeigen (z. B. Boolean oben).

verdienen

Was ist also schön an statischen Factory-Methoden? Es wird lange dauern, deshalb möchte ich es in Teil 2 zusammenfassen. Bis hierher für diese Zeit

Referenz

Von Joshua Brock Übersetzt von Yoshiki Shibata Effective Java 2nd Edition

Recommended Posts

statische Werksmethode Teil 1
Factory Method Pattern
Factory Method Muster
Entwurfsmuster ~ Fabrikmethode ~
Ausgabe über die Methode Teil 1
20 Entspricht statischen Methodenaufrufen
Keine statische Methode getFont Fehler
Vorteile der statischen Java-Methode
Einführung in Entwurfsmuster (Factory-Methode)
statisch
Java-Anfänger-Entwurfsmuster (Factory-Methodenmuster)
Rails 5 Code Reading Teil 1 ~ ActiveRecord neue Methode ~