Məzmuna keçin
  • Kateqoriyalar
  • Ən yeni
  • Teqlər
  • Populyar
Yığmaq
Brend loqosu
  1. Əsas səhifə
  2. Kompüter elmi
  3. Dizayn nümunələri
  4. Builder dizayn nümunəsi (Builder Pattern)

Builder dizayn nümunəsi (Builder Pattern)

Planlaşdırılıb Sabitlənib Kilidlənib Köçürülüb Dizayn nümunələri
builderdesignpatterncreational
1 Yazı 1 Yazarlar 33 Baxış
  • Ən köhnədən yeniyə
  • Ən yenidən köhnəyə
  • Ən çox səs
Cavab ver
  • Mövzu olaraq cavablandır
🔑 Daxil ol
Bu mövzu silindi. Yalnız mövzu idarəçiliyi imtiyazlarına malik olan istifadəçilər onu görə bilər.
  • codexC Oflayn
    codexC Oflayn
    codex
    yazdı sonuncu dəfə codex tərəfindən redaktə edilib
    #1

    Builder dizayn nümunəsi, mürəkkəb obyektlərin yaradılmasını onların təqdimatından ayırmağa imkan verir. Bu, zəncirvari çağırma prosesindən istifadə edərək müxtəlif təqdimatlara malik obyektlər yaratmağa şərait yaradır.


    🏗️ Misal üzərindən izah

    Car class-ı

    class Car {
      constructor(builder) {
        this.make = builder.make;
        this.model = builder.model;
        this.year = builder.year;
        this.color = builder.color;
        this.engine = builder.engine;
      }
    
      toString() {
        return `${this.year} ${this.make} ${this.model} in ${this.color} with a ${this.engine} engine`;
      }
    }
    

    Burada Car class-ı avtomobilin xüsusiyyətlərini saxlayır: marka, model, il, rəng və mühərrik. Bu class CarBuilder vasitəsilə yaradılır.


    CarBuilder class-ı

    class CarBuilder {
      constructor(make, model) {
        this.make = make;
        this.model = model;
      }
    
      setYear(year) {
        this.year = year;
        return this;
      }
    
      setColor(color) {
        this.color = color;
        return this;
      }
    
      setEngine(engine) {
        this.engine = engine;
        return this;
      }
    
      build() {
        return new Car(this);
      }
    }
    

    CarBuilder addım-addım obyektin qurulmasına imkan verir. Hər metod müəyyən xüsusiyyəti təyin edir və this qaytardığı üçün zəncirvari çağırma (method chaining) mümkündür.


    🧠 Kodun izahı

    1. Zəncirvari interfeys (Fluent interface): CarBuilder metodlarının hər biri this qaytararaq, ardıcıl çağırmalara imkan verir.
    2. Ayrılmış məsuliyyət (Separation of concerns): Avtomobilin necə qurulacağı CarBuilder-də, nəyi təmsil etdiyi isə Car class-ında müəyyən edilir.
    3. Dəyişməzlik (Immutability): Car obyekti qurulduqdan sonra onun sahələri dəyişməz qalır.

    🛠️ İstifadə nümunəsi

    const car = new CarBuilder("Toyota", "Camry")
      .setYear(2021)
      .setColor("Red")
      .setEngine("V6")
      .build();
    
    console.log(car.toString());
    // Nəticə: 2021 Toyota Camry in Red with a V6 engine
    
    1 cavab Son cavab
    Cavab ver
    • Mövzu olaraq cavablandır
    🔑 Daxil ol
    • Ən köhnədən yeniyə
    • Ən yenidən köhnəyə
    • Ən çox səs




    Bilik paylaşdıqca artan bir sərvətdir
    • Daxil ol

    • Sizin hesabınız yoxdur? Qeydiyyatdan keç

    • Axtarış etmək üçün daxil olun və ya qeydiyyatdan keçin.
    • İlk yazı
      Son yazı
    0
    • Kateqoriyalar
    • Ən yeni
    • Teqlər
    • Populyar