JavaRush /Java блогу /Random-KY /Үлгү куруучу
Нина Можарская
Деңгээл
Киев

Үлгү куруучу

Группада жарыяланган
Бул үлгү класста бир типтеги көп сандагы параметрлер болгондо жана алардын тартибин жана максатын эстеп калуу кыйын болгондо колдонуу сунушталат.
Үлгү куруучу - 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;     }
Эми методдо mainan objectти түзүүдө талап кылынган параметрлери бар статикалык класстын конструктору Builderчакырылат. Андан кийин бардык керектүү кошумча параметрлер чекит аркылуу чакырылат. buidl();Акыр-аягы, an objectти түзүү үчүн бир ыкма чакырылат .
Good good = new Good.Builder(40, 20)
        .c(2)
        .d(4)
        .e(23)
        .f(9)
        .buidl();
Эгерде мен эки талап кылынган жана бир кошумча параметри бар an object түзүүнү кааласам, ал төмөнкүдөй болот:
Good good = new Good.Builder(40, 20)
        .c(2)
        .buidl();
Мен эки гана талап кылынган параметр менен an object түзүүнү кааласам, ал төмөнкүдөй көрүнөт:
Good good = new Good.Builder(40, 20)
         .buidl();
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION