Heim > Java > javaLernprogramm > Wann sollten Sie das Builder-Muster verwenden?

Wann sollten Sie das Builder-Muster verwenden?

Mary-Kate Olsen
Freigeben: 2024-12-25 11:16:10
Original
855 Leute haben es durchsucht

When Should You Use the Builder Pattern?

Wann ist das Builder-Muster zu verwenden?

Das Builder-Muster wird häufig verwendet, wenn eine Klasse einen Konstruktor oder eine Factory mit zahlreichen Parametern erfordert. Es bietet mehrere Vorteile gegenüber Teleskopkonstruktoren und JavaBeans-Mustern.

  • Beseitigt lange und inkonsistente Konstruktorlisten: Teleskopkonstruktoren erstellen lange und komplexe Parameterlisten, sodass es schwierig ist, sich an deren Reihenfolge zu erinnern und Zweck.
  • Verhindert inkonsistente Objektzustände: JavaBeans sind zwar sauberer als teleskopische Konstruktoren, können jedoch aufgrund mehrerer Konstruktor- und Setter-Aufrufe zu inkonsistenten Objektzuständen während der Konstruktion führen.

Vorteile des Builder-Musters:

  • Parameterzentralisierung: Die Builder-Klasse konsolidiert alle Parameterwerte an einem einzigen Ort, wodurch Es ist einfach, Optionen festzulegen und zu ändern.
  • Unveränderlichkeit: Das konstruierte Objekt ist unveränderlich, was seine Konsistenz gewährleistet und ungültige Parameterkombinationen verhindert.
  • Verkettung: Builder-Methodenaufrufe geben die Builder-Instanz zurück, sodass sie prägnant und lesbar verkettet werden können Code.

Beispiel in Java:

Der folgende Java-Code demonstriert das Builder-Muster zum Anpassen eines Pizza-Objekts:

public class Pizza {
    private int size;
    private boolean cheese;
    private boolean pepperoni;
    private boolean bacon;

    public static class Builder {
        private final int size;
        private boolean cheese = false;
        private boolean pepperoni = false;
        private boolean bacon = false;

        public Builder(int size) {
            this.size = size;
        }

        public Builder cheese(boolean value) {
            cheese = value;
            return this;
        }

        public Builder pepperoni(boolean value) {
            pepperoni = value;
            return this;
        }

        public Builder bacon(boolean value) {
            bacon = value;
            return this;
        }

        public Pizza build() {
            return new Pizza(this);
        }
    }

    private Pizza(Builder builder) {
        size = builder.size;
        cheese = builder.cheese;
        pepperoni = builder.pepperoni;
        bacon = builder.bacon;
    }
}
Nach dem Login kopieren

Dieses Builder-Muster vereinfacht die Pizza-Anpassung und ermöglicht das Hinzufügen, Entfernen oder Ändern von Optionen, ohne dass zusätzliche Konstruktoren oder komplexe Methodenaufrufe erforderlich sind.

Das obige ist der detaillierte Inhalt vonWann sollten Sie das Builder-Muster verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage