Merhaba, tasarım desenlerini uygulamalı olarak anlatacağım bir yazı serisine başlıyorum. İlk olarak Factory Method tasarım deseninden bahsedeceğim. Umarım anlaşılır ve az hatalı bir yazı olur.
Tasarım Desenleri ve Factory Method Tasarım Deseni Nedir?
Tasarım desenleri, yazılım projelerini geliştirirken çeşitli amaçların sağlanması ve projelerin gelecekteki ihtiyaçlara karşı daha rahat ve dinamik bir şekilde değiştirilebilir olmasını sağlamak amacıyla kullanılan ortak yaklaşımlardır. Bunu sağlamak için nesne yönelimli programlama teknikleri kullanılmaktadır.
Factory Method tasarım deseni ise, kullanıcıların ana programları içerisinde kullanacağı asıl sınıf nesnelerini burada üretmek yerine, bu sınıfların implemente ettiği bir interface ve factory method aracılığı ile sınıfları soyut şekilde ana programda kullanmaktır.
C# ile Factory Method Tasarım Deseni Uygulaması
Daha iyi anlamak için basit bir hesap makinesi sisteminde tasarım desenimizi uygulayalım. Amaç; ana program içerisinde belirtilecek “Çıkarma”, “Toplama” ve “Çarpma” gibi metinsel ifadeler ile asıl sınıfları üretmeden, interface üzerinden ana program içerisinde soyut bir şekilde kullanmaktır. Uygulamanın UML diyagramı aşağıdaki gibidir.

İlk olarak aşağıdaki gibi, Calculate metotu imzasına sahip olan ICalculator interface’i oluşturalım.

Daha sonra oluşturduğumuz interface’i implemente edecek olan Plus, Minus ve Multiplication sınıflarını oluşturalım.



Daha sonra ise ana programımız olan CalculateService kısmından gelen isteğe göre alacağımız nesne için factory sınıf olan CalculateFactory sınıfını aşağıdaki gibi oluşturalım.

Oluşturulan bu yapı ile tasarım deseni ana program içerisinde aşağıdaki gibi kullanılabilir. Factory sınıfından bir nesne üretilmiştir. Üretilen nesnenin CreateCalculation metotu kullanılarak interface’i implemente etmiş olan sınıflar ana programda kullanılabilmektedir. Aşağıda örnek bir kullanım ve programın çıktısı verilmektedir.


Sonuç
Factory Method tasarım deseni ile birlikte UML ve bahsetmesem de interface ayrı sınıflarda implemente edildiği için polimorfizm kavramlarını da içeren yazımın sonuna geldim. Eleştiri ya da görüşleriniz için benimle yasinatilgan60@gmail.com üzerinden iletişime geçebilirsiniz. İyi günler…
Kaynaklar
https://www.geeksforgeeks.org/factory-method-design-pattern-in-java/
Comments are closed.