Factory Design Pattern Ve Java İle Örneklemesi
Merhabalar arkadaşlar. Bu yazıda sizlere Factory Design Pattern’ı ve Java ile örneklemesini anlatmaya çalışacağım.
Factory Design Pattern
Dünyadaki OOP yönelimli programlama dillerinde en çok kullanılan Design Pattern olduğu tahmin edilen Factory Design Pattern nesne üretimi konusunda nesneye ihtiyacı olan kodun direkt olarak kendisi new operatörü ile oluşturması yerine bir factory mekanizmasından yeni bir nesne talep etmesi mantığı üzerine kuruludur. Bu factory mekanizması da abstraction kullanarak işlemini halletmeyi hedefler. Aşağıda yapacağımız örnekle bu açıklamayı pekiştirelim.
Shape.java
Shape bizim interface’imiz ve içerisinde implement edilmek üzere bir draw() metodu tutuyor.
Circle, Rectangle ve Square Sınıfları
Circle, Rectangle ve Square sınıfları Shape arabirimini uygulayan ve içerisinde draw() metodunu kendilerine göre override eden sınıflardır.
ShapeEnum.java
Shape arabirimini implente etmiş sınıflarımızı bir de ShapeEnum enum’ı içerisinde tutuyoruz. Bu enum’ı oluşturmadaki amaç factory mekanizması için çalışacak kodun SOLID prensiplerinden Open/Closed prensibine yani direk iş yapan kodda değişiklik yapımaması fakat kodun da geliştirmeye açık olması prensibine uygun olmasını sağlamaktır.
ShapeFactory.java
ShapeFactory sınıfımız bizim Factory Design Pattern mekanizmamızı üstlenen kısımdır. Kod içerisinde az önce bahsettiğim gibi Open/Closed prensibine uygun olsun diye getShape(…) metodu ShapeEnum tipinde bir parametre alıyor.getShape metodu aynı zamanda yine Open/Closed prensibine uygun olması amacı ile Reflection’dan da yararlanılarak yazılmıştır. Aksi takdir de if-else’ler ile nesne oluşturup döndürümü gerekecekti.
FactoryPatternDemo.java
FactoryPatternDemo sınıfımız da bizim main metodumuzu koşturduğumuz sınıfımız. Koddan göreceğimiz üzere elde ettiğimiz bir ShapeFactory nesnesi üzerinden getShape metodu çağırımlarında ShapeEnum enum’ındaki alanlardan birisini parametre olarak geçiriyoruz ve akabinde draw() metodunu çağırıyoruz. Nesne elde edimi (circle,rectangle,square nesneleri) direkt olarak new operatörü ile değil ShapeFactory üzerinden yapılıyor ve böylece Factory Design Pattern kullanılmış oluyor.
Bu yazıda anlatacağım da bu kadar arkadaşlar. Factory Design Pattern’ın ne olduğunu öğrenmiş ve Java ile örneklemiş olduk.
Başka bir yazıda görüşene kadar sağlıcakla kalın.
Görüşmek üzere.
Yazıda kullandığım 2 kaynak: https://www.tutorialspoint.com/design_pattern/factory_pattern.htm https://kodcu.com/2014/08/design-patterns-1-giris-factory-ve-abstract-factory-tasarim-kaliplari-2/
Selam ve Sevgilerimle