Factory deseni
Nesne oluşturma mantığını ayrı bir fabrika fonksiyonuna taşıyan deseni öğrenirsin.
Factory deseni
Factory deseni, nesne oluşturma mantığını ayrı bir fabrika fonksiyonuna taşır. Çağıran kod hangi nesnenin üretileceğini bilmez; yalnızca bir parametre verir ve sonuç alır.
Bu, kodu daha esnek hale getirir. Yeni bir nesne türü eklemek için fabrikayı değiştirmen yeter; çağıran taraf aynı kalır.
Sınıf yerine nesne üreten bir fonksiyon yazmak JS'te oldukça yaygındır.
Fabrika fonksiyonu örneği
Aşağıdaki fabrika, type parametresine göre düğme nesneleri üretir. Çağıran kod yalnızca createButton('primary', 'Kaydet') yazar; üretim ayrıntıları fabrikada kalır.
function createButton(type, label) {
return { label: label, kind: type };
}Bu desen, özellikle çok sayıda benzer nesne türü olduğunda işe yarar.
Uygulama createButton fabrikası
createButton(type, label) fabrika fonksiyonunu yaz. Döndürdüğü nesnede label özelliği label değerine eşit olsun ve render() yöntemi label döndürsün. type 'primary' ise button.kind = 'primary' ata. Son olarak button nesnesini döndür.
Örnek çözümü göster
label, render() { return label; } } yap, type 'primary' ise button.kind = 'primary' ata, en son return button.
Örnek çözüm:
function createButton(type, label) {
const button = {
label: label,
render() {
return label;
}
};
if (type === 'primary') {
button.kind = 'primary';
}
return button;
}
Kendini test et
-
Factory deseninin sağladığı avantaj nedir?
- Nesneleri daha hızlı sıralar
- Belleği otomatik temizler
- Nesne oluşturma mantığını çağrıdan ayırır
- Sınıfları kalıtım yapar
Cevabı göster
Nesne oluşturma mantığını çağrıdan ayırır — Doğru! Factory, oluşturma mantığını fabrika fonksiyonuna taşır.
-
Fabrika dönüşünü tamamla
function createButton(label) { return { label: label, ____() { return label; } }; }Cevabı göster
function createButton(label) { return { label: label, render() { return label; } }; } -
Factory kavramlarını eşleştir
- Factory
- Nesne oluşturmayı ayırır
- createButton()
- Fabrika fonksiyonu
- type parametresi
- Hangi türü yapacağını söyler
- return {}
- Yeni nesne döndürür