JavaRush /جاوا بلاگ /Random-UR /پیٹرن بلڈر

پیٹرن بلڈر

گروپ میں شائع ہوا۔
اس پیٹرن کو استعمال کرنے کی سفارش کی جاتی ہے جب ایک کلاس میں ایک ہی قسم کے پیرامیٹرز کی ایک بڑی تعداد ہو اور ان کی ترتیب اور مقصد کو یاد رکھنا مشکل ہو۔
پیٹرن بلڈر - 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سٹیٹک کلاس کے کنسٹرکٹر کو کہا جاتا ہے۔ 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