[Read Effective Java] Kapitel 2 Punkt 4 "Unmöglichkeit der Instanziierung mit privatem Konstruktor erzwingen"

Mit privatem Konstruktor nicht unveränderlich erzwingen

Dienstprogrammklassen (Klassen, die aus statischen Methoden und statischen Feldern bestehen) sind nicht für die Instanziierung vorgesehen. Trotzdem sehe ich oft Dinge, die instanziiert werden können. Verwenden wir also einen privaten Konstruktor, um eine Instanziierung absolut unmöglich zu machen.

Glossar

Standardkonstruktor

Wenn Sie keine Konstruktoren definiert haben, wird automatisch ein Konstruktor namens Standardkonstruktor erstellt.

Beispielcode

Durch das explizite Schreiben eines privaten Konstruktors wird der Zugriff von außen deaktiviert und die Generierung des Standardkonstruktors unterdrückt. AssertionError ist nicht unbedingt erforderlich, aber als Versicherung enthalten.


//Dienstprogrammklassen, die nicht instanziiert werden können
public class UtilityClass {
    //Unterdrücken Sie den Standardkonstruktor, um eine Instanziierung zu verhindern
    private UtilityClass() {
        throw new AssertionError();
    }
    … //Der Rest entfällt
}

Fortsetzen

[Read Effective Java] Kapitel 2 Punkt 5 "Vermeiden Sie die Erstellung unnötiger Objekte" https://qiita.com/Natsukii/items/ec64efddce85ffd59fa8

Recommended Posts

[Read Effective Java] Kapitel 2 Punkt 4 "Unmöglichkeit der Instanziierung mit privatem Konstruktor erzwingen"
[Read Effective Java] Kapitel 2 Punkt 3 "Singleton-Eigenschaften mit privatem Konstruktor oder Aufzählungstyp erzwingen"
Mit dem effektiven privaten Java-Konstruktor nicht unveränderlich erzwingen
[Read Effective Java] Kapitel 2 Punkt 2 "Betrachten Sie einen Builder, wenn Sie mit einer großen Anzahl von Konstruktorparametern konfrontiert werden."
[Read Effective Java] Kapitel 2 Punkt 7 "Vermeiden Sie Finalizer"
[Read Effective Java] Kapitel 3 Punkt 10 "Immer toString überschreiben"
[Read Effective Java] Kapitel 3 Punkt 12 "Berücksichtigung der Implementierung von Comparable"
[Read Effective Java] Kapitel 2 Punkt 6 "Veraltete Objektreferenzen entfernen"
[Read Effective Java] Kapitel 3 Punkt 9 "Wenn Sie equals überschreiben, überschreiben Sie immer hashCode"
[Read Effective Java] Kapitel 2 Punkt 5 "Vermeiden Sie die Erstellung unnötiger Objekte"
[Read Effective Java] Kapitel 2 Punkt 1 "Betrachten Sie statische Factory-Methoden anstelle von Konstruktoren"
[Read Effective Java] Kapitel 3 Punkt 8 "Wenn Sie gleich überschreiben, befolgen Sie den allgemeinen Vertrag"
Effektives Java Kapitel 2
Effektives Java Kapitel 6 34-35
Effektives Java Kapitel 4 15-22
Effektives Java Kapitel 3
Lesen Sie eine Zeichenfolge in einer PDF-Datei mit Java
Effektives Java-Element 25 Wählen Sie eine Liste aus einem Array aus. Erste Hälfte
Erstellen eines Java-Projekts mit Gradle
Effektive Java 3rd Edition Kapitel 5 Generika
Effektive Java 3rd Edition Kapitel 8 Methoden
[Java] Testen Sie private Methoden mit JUnit