Factory Method Design Pattern Nedir?

Factory Method Design Pattern, bir sınıfın nesnelerinin oluşturulmasını, alt sınıflar tarafından gerçekleştirilen bir yöntemle yapmasını sağlar. Bu yöntem, oluşturulacak nesnenin türünü belirlemek için kullanılır. Bu desen, nesnenin oluşturulması sırasında kullanılan kodun kalabalık olmamasını ve nesnenin oluşturulması işlemlerinin değiştirilebilir olmasını sağlar. Örneğin, bir araba firmasının farklı farklı tipte araç oluşturmasını düşünebiliriz. ()

Her arabada olabilecek/arabanın ortak özelliklerini belirttiğim Car adında bir abstract class oluşturuyorum.

Araba tiplerini, kalıtım sayesinde Car abstract sınıfından alarak Sedan, SUV ve Hatchback araç tiplerini oluşturuyorum.


Programda oluşabilecek type hatalarını engellemek ve belirli tiplerin dışına çıkılmaması adına CarTypes adında bir enum oluşturuyorum.

Şimdi sıra geldi Factory’imizi oluşturmaya..
CarFactory adında bir public class oluşturuyorum ve içine Create adında geriye Car modelinde değer döndüren bir method hazırlıyorum.

* Koddan anlaşılacağı üzere, ben CarFactory‘de Create methoduna Sedan tipini gönderdiğimde bana new Sedan(); bloguna girip oluşturduğum nesnin artık Sedan yapısında;
4 teker olacağını, sunroof ve elektrikli olmayacağının bilgisini vermiş oluyor.

Şimdi bakalım Fabrikamız gerçekten bir Sedan arabamı üretmiş? 🙂
factory method design pattern

Eğer Factory.Create’içine Hatchback gönderirseniz; Sunroof’ı olmayan, elektrikli ve 4 tekerlekli bir araba üretecektiniz 🙂

Umarım konuyu anlaşılabilir bir şekilde sizlere anlatabilmişimdir.

Örnek proje halini aşağıda ki Github logosuna tıklayarak gidebilirsiniz;

Leave a Comment