tasarım desenleri logo

Factory Method(Fabrika Yordam) Tasarım Deseni

Merhaba arkadaşlar, daha önceki yazımda Singleton tasarım desenini anlattım. Bu yazımda da Fabrika Yordam(metod) tasarım desenine bakacağız.

Fabrika Yöntemi, nesne oluşturmak için bir arabirim tanımlayan, alt sınıfların hangi sınıfı başlatacağına karar vermesine izin veren yaratıcı bir modeldir.

Fabrika yöntemi şablonunu kullanmak için en iyi zaman, tek bir varlığın birden fazla varyasyonuna sahip olduğunuz zamandır.

Örnek olarak bir telefon modelinin birkaç vasyasyon/sürüm(32/64/128) gibi farklı farklı varyasyonları bulunuyor olabilir. Bunları oluşturmak için ana bir telefon fabrikası metodu(telefonFabrikasi) oluşturmamız gerekmektedir. Bu arabirim kullanılarak her alt sınıfın telefonFabrikası karşılığını “creat” (“oluştur”) yöntemini uygulayarak belirli bir telefon oluşturulur.

Fabrika yordam kavramını daha iyi anlamak için bir gerçek dünyadaki bir iş ajansı düşünebiliriz. Bu ajans müşterilerinin açık pozisyonları için eleman almasına yardımcı olur. Müşteri ise pozisyon için gerekli kriterleri sağlar ve daha sonra adayların değerlendirilmesini ajansa bırakır. İşe alım ajansı işe adayların bu iş için uygunluklarını denetler ve uygun kriterleri açık olan pozisyonlara yerleştirir.

Bu durumda iş ajansı fabrika yordam gibi davranır. İstemcinin, nasıl oluşturulduklarının ayrıntılarını bilmeden yeni nesneler oluşturmasını sağlar.

Oluşturma mantığını istemciye maruz bırakmadan nesneler oluştururuz ve ortak bir arabirim (istihdam ajansı) kullanarak yeni oluşturulan nesnelere başvururuz.

Nesne Oluşturma, nesneleri oluşturmak için fabrika yöntemini uygulayan alt sınıflara devredildiği için fabrika yöntemi kalıtıma dayanır.

Fabrika yordam, genellikle mimari modeli bir dizi uygulama için standartlaştıran, ancak bireysel uygulamaların kendi nesnelerini ve örneklemelerini tanımlamasına izin veren çerçeveler oluştururken kullanılır.

Fabrika, ortak arayüzü olan nesnelerin oluşturucusudur.

[the_ad id=”1292″]

C# ile şekil oluşturma fabrika yordam örneği aşağıdaki kodda verilmiştir.

Umarım anlaşılır olmuştur.

Bir cevap yazın