JavaRush /Java Blog /Random-TL /Tagabuo ng Pattern

Tagabuo ng Pattern

Nai-publish sa grupo
Ang pattern na ito ay inirerekomenda na gamitin kapag ang isang klase ay may malaking bilang ng mga parameter ng parehong uri at mahirap matandaan ang kanilang pagkakasunud-sunod at layunin.
Tagabuo ng Pattern - 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 для генерации an object
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;     }
Ngayon sa pamamaraan, mainkapag lumilikha ng isang bagay, ang tagabuo ng static na klase Builderna may kinakailangang mga parameter ay tinatawag. Pagkatapos ang lahat ng kinakailangang opsyonal na mga parameter ay tinatawag sa pamamagitan ng tuldok. Sa wakas, ang isang pamamaraan ay tinatawag buidl();upang makabuo ng bagay.
Good good = new Good.Builder(40, 20)
        .c(2)
        .d(4)
        .e(23)
        .f(9)
        .buidl();
Kung gusto kong lumikha ng isang bagay na may dalawang kinakailangan at isang opsyonal na mga parameter, magiging ganito ang hitsura:
Good good = new Good.Builder(40, 20)
        .c(2)
        .buidl();
Kung gusto kong lumikha ng isang bagay na may dalawang kinakailangang parameter lamang, ganito ang hitsura:
Good good = new Good.Builder(40, 20)
         .buidl();
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION