JavaRush /Java блогы /Random-KK /Үлгі құрастырушы
Нина Можарская
Деңгей
Киев

Үлгі құрастырушы

Топта жарияланған
Бұл үлгіні сыныпта бір типті параметрлердің көп саны болғанда және олардың реті мен мақсатын есте сақтау қиын болған жағдайда қолдану ұсынылады.
Үлгі құрастырушы - 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();Соңында нысанды жасау үшін әдіс шақырылады .
Good good = new Good.Builder(40, 20)
        .c(2)
        .d(4)
        .e(23)
        .f(9)
        .buidl();
Екі қажетті және бір қосымша параметрі бар нысанды жасағым келсе, ол келесідей болады:
Good good = new Good.Builder(40, 20)
        .c(2)
        .buidl();
Тек екі қажетті параметрі бар нысанды жасағым келсе, ол келесідей болады:
Good good = new Good.Builder(40, 20)
         .buidl();
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION