JavaRush /Java Blogu /Random-AZ /Pattern Builder
Нина Можарская
Səviyyə
Киев

Pattern Builder

Qrupda dərc edilmişdir
Bu nümunə bir sinifdə eyni tipli çoxlu sayda parametrlərə malik olduqda və onların sırasını və məqsədini xatırlamaq çətin olduqda istifadə etmək tövsiyə olunur.
Pattern Builder - 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;     }
İndi metodda mainobyekt yaratarkən tələb olunan parametrlərə malik statik sinfin konstruktoru Builderçağırılır. Sonra bütün lazımi isteğe bağlı parametrlər nöqtə vasitəsilə çağırılır. buidl();Nəhayət, obyekti yaratmaq üçün bir üsul çağırılır .
Good good = new Good.Builder(40, 20)
        .c(2)
        .d(4)
        .e(23)
        .f(9)
        .buidl();
İki tələb olunan və bir isteğe bağlı parametrli obyekt yaratmaq istəsəm, bu belə görünəcək:
Good good = new Good.Builder(40, 20)
        .c(2)
        .buidl();
Yalnız iki tələb olunan parametrə malik bir obyekt yaratmaq istəyirsinizsə, bu belə görünür:
Good good = new Good.Builder(40, 20)
         .buidl();
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION