JavaRush /Блоги Java /Random-TG /Созандаи намуна
Нина Можарская
Сатҳи
Киев

Созандаи намуна

Дар гурӯҳ нашр шудааст
Ин намуна тавсия дода мешавад, ки вақте ки синф дорои миқдори зиёди параметрҳои як намуд ва дар хотир нигоҳ доштани тартиб ва таъиноти онҳо душвор аст, истифода шавад.
Созандаи намуна - 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;     }
Ҳоло дар усул mainҳангоми сохтани an 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