JavaRush /Java Blog /Random-TK /Nusga gurluşykçysy

Nusga gurluşykçysy

Toparda çap edildi
Bu nagyş, synpyň şol bir görnüşdäki köp sanly parametrleri bolanda we olaryň tertibini we maksadyny ýatda saklamak kyn bolanda ulanmak maslahat berilýär.
Nusga gurluşykçysy - 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;     }
Indi usulda, mainobýekt döredilende, zerur parametrleri bolan statiki synpyň konstruktory Builderdiýilýär. Soňra ähli zerur goşmaça parametrler nokat arkaly çagyrylýar. buidl();Ahyrynda obýekti döretmek üçin bir usul diýilýär .
Good good = new Good.Builder(40, 20)
        .c(2)
        .d(4)
        .e(23)
        .f(9)
        .buidl();
Iki zerur we bir goşmaça parametrli bir obýekt döretmek islesem, şeýle bolar:
Good good = new Good.Builder(40, 20)
        .c(2)
        .buidl();
Diňe iki zerur parametrli bir obýekt döretmek islesem, şuňa meňzeýär:
Good good = new Good.Builder(40, 20)
         .buidl();
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION