JavaRush /Java-Blog /Random-DE /Musterersteller

Musterersteller

Veröffentlicht in der Gruppe Random-DE
Die Verwendung dieses Musters wird empfohlen, wenn eine Klasse über eine große Anzahl von Parametern desselben Typs verfügt und es schwierig ist, sich an deren Reihenfolge und Zweck zu erinnern.
Musterersteller – 1
public class Good{
   public final int a;
   public final int b;
   public final int c;
   public final int d;
   public final int e;
   public final int f;
//Реализация Builder через статический внутренний класс
public static class Builder{
//Обязательные параметры
    public int a;
    public int b;
//Необязательные параметры со значениями по умолчанию
public int c = 0;
public int d = 0;
public int e = 0;
public int f = 0;
//Конструктор с обязательными параметрами
public Builder(int a, int b){
this.a=a;
this.b=b;
}
//Методы с возвращающим типом Builder для необязательного параметра с, d, e, f,
  public Builder c (int val) {
            c = val;
            return this;
        }
  public Builder d (int val) {
            d = val;
            return this;
        }
  public Builder e (int val) {
            e = val;
            return this;
        }
  public Builder f (int val) {
            f = val;
            return this;
        }
//Метод с возвращающим типом Good для генерации ein Objektа
public Good buidl() {
            return new Good (this); }
private Good(Builder builder) {
        a = builder.a;
        b = builder.b;
        c = builder.c;
        d = builder.d;
        e = builder.e;
        f = builder.f;     }
Nun wird in der Methode mainbeim Erstellen eines Objekts der Konstruktor der statischen Klasse Buildermit den erforderlichen Parametern aufgerufen. Anschließend werden alle notwendigen optionalen Parameter über den Punkt aufgerufen. Abschließend wird eine Methode aufgerufen, buidl();um das Objekt zu generieren.
Good good = new Good.Builder(40, 20)
        .c(2)
        .d(4)
        .e(23)
        .f(9)
        .buidl();
Wenn ich ein Objekt mit zwei erforderlichen und einem optionalen Parameter erstellen möchte, sieht es folgendermaßen aus:
Good good = new Good.Builder(40, 20)
        .c(2)
        .buidl();
Wenn ich ein Objekt mit nur zwei erforderlichen Parametern erstellen möchte, sieht es so aus:
Good good = new Good.Builder(40, 20)
         .buidl();
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION