Factory Pattern – Javascript Design Paterns Series

Factory Pattern, nesne oluşturma işlemini merkezi bir noktada topkar. Bu pattern, nesne oluşturma işlemini soyutlar ve nesne oluşturma mantığını yönetir. Bu sayede, belirli bir sınıftan veya tipten nesnelerin oluşturulmasını kolaylaştırır.

Neden ve Nerede Kullanılır?

  • Karmaşıklığı Gizleme: Nesne oluşturma işlemi karışık olduğunda, bu karmaşıklığı gizlemek için kullanılır.
  • Esneklik ve Uzatılabilirlik: Farklı türde nesneler oluşturmak gerektiğinde, bu desen sayesinde kodunuzu kolayca genişletebilirsiniz.
  • Bağımlılığı Azaltma: Sınıfların nasıl oluşturulduğu hakkında bilgiyi merkezi bir yerde toplar, böylece sınıflar arası bağımlılıkları azaltır.
  • Kullanıcıdan Detayları Gizleme: Kullanıcıdan nesne oluşturma detaylarını gizler ve sadece gerekli bilgiyi sağlar.

Örnek Kod:

// Ürün sınıfları
class Car {
  constructor() {
    this.type = "Car";
  }
  drive() {
    console.log("Driving a car!");
  }
}

class Truck {
  constructor() {
    this.type = "Truck";
  }
  drive() {
    console.log("Driving a truck!");
  }
}

// Fabrika sınıfı
class VehicleFactory {
  createVehicle(vehicleType) {
    switch(vehicleType) {
      case "car":
        return new Car();
      case "truck":
        return new Truck();
      default:
        throw new Error("Vehicle type not recognized");
    }
  }
}

// Kullanım
const factory = new VehicleFactory();

const myCar = factory.createVehicle("car");
myCar.drive(); // "Driving a car!"

const myTruck = factory.createVehicle("truck");
myTruck.drive(); // "Driving a truck!"

Açıklama

  • ‘Car’ ve ‘Truck’ adında iki sınıf oluşturduk, her biri farklı türde araçları temsil ediyor.
  • ‘VehicleFactory’ adında bir fabrika sınıfı oluşturduk. Bu sınıf, ‘createVehicle’ yöntemi ile belirli bir türde araç nesnesi oluşturur.
  • ‘createVehicle’ yöntemi, ‘cehicleType’ parametresine göre oluşturur ve uygun sınıfın bir örneğini döndürür. Eğer tanınmayan bir ütr girilirse hata fırlatır.
  • Kullanım kosmında, ‘VehicleFactory”den bir fabrika nesnesş oluşturduk ve bu nesne üzerinden ‘car’ ve ‘truck’ türünde araç nesneleri oluşturduk.

Özetle

Factory Pattern, nesne oluşturma işlemlerini merkezi bir noktada toplar ve yönetir. Bu desen, özellikle karmaşık nesne oluşturma işlemlerinde, kodun esnekliğini arttırmak ve bakımını kolaylaştırmak için kullanır. Farklı türde nesnelerin yaratırlması gerektiğinde ve bu nesne oluşturma işlemlerinin detaylarının kullanıcıdan gizlenmesi gerektiğinde ideal bir çözümdür.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir