Design Pattern Dersleri #1 (Giriş + Factory Patterns)(PHP ve Golang ile)

Alameddin Çelik
3 min readDec 23, 2020

--

Bu yazı serisinde tasarım desenlerinin nasıl uygulandıklarını ve mantıksal yapılarını göreceğiz. Her hafta yeni bir tasarım deseni ile görüşme üzere…

Design Pattern Nedir?

Tasarım Deseni(Design pattern) yazılım geliştirme sürecinde karşılaşılan, birbirine benzeyen sorunları çözebilmek için kullanılan ve başarısı kanıtlanmış yöntemlerdir. Kısacası Kabul Görmüş Sorun Çözme yöntemleridir.

Yazının bundan sonraki kısmında kod örnekleri PHP ile verilmiş bulunmaktadır. Temel olarak mantığın anlaşılması hedeflenmiştir, Golang ile kod örnekleri için lütfen Ek yazıya gidiniz.

*** Golang ile kod örnekleri için lütfen ikinci yazıya gidiniz ****

Factory Method Pattern

Creational Design Patterns

Factory Pattern, isminden de anlaşılacağı gibi fabrika görevi üstlenmektedir, 4 farklı Factory Pattern bulunduğu için internet üzerinde biraz karışabiliyor. En Temel anlatımı üretim işlemi ile kullanım işlemlerini ayrı sınıflara atamayı hedefliyoruz. Taşıt Üretecek bir fabrikadan hayal ederek 4 örneği inceleyelim.

  1. Simple Factory Pattern: Tek bir fabrika sınıfı oluşturulur ve sırasıyla arabaÜret, motorsikletÜret, BisikletÜret fonksiyonları hazırlıyoruz ve bu sınıfın bu methodları ile araba, motorsiklet ve bisiklet sınıflarını üretiyoruz.
Simple Factory Pattern

2. Static Factory Pattern: Fabrika Sınıfı içerisinde oluşturduğumuz static tek bir fonksiyon ile farklı nesneler üretebiliyoruz. Buradaki gerçek hayat örneğinde bir fabrikamız var, biz her bir nesne üretirken bu fabrikaya o nesnenin adını söylüyoruz ve fabrika gidip o nesneyi üretiyor. bu pattern’daki static kavramı fonksiyonun statik olmasından kaynaklıdır.

3. Factory Method Pattern: Bu Pattern da üretilecek nesnelerin üretim kısımları ile kullanım kısımlarını ayırmayı hedefliyoruz. İkinci amacımız ise kullanım sırasındaki tekrarlanacak kodlarda tekrarını azaltmak ve her sınıfın kendi sorumlulukları altında çalışmasını sağlamak. Örneğimizden gidecek olursak vasıtalar için bir vasıta arayüzü tanımlıyoruz. Sonrasında bu vasıta arayüzünden araba, motorsiklet ve bisiklet sınıflarını oluşturuyoruz.
Oluşturma sırasında kullanacağımız spesifik ArabaFabrikası, MotorsikletFabrikası, BisikletFabrikası gibi sınıflarımız ve bu sınıflarımızın ortak kısımlarını oluşturacak Abstract Fabrika sınıfımızı oluştururuz, Son olarak bu Fabrika içerisine de alt fabrika sınıflarımızda kullanacağımız ortak methodları oluştururuz.

Oluşturulacak Taşıtlar

Kullanım Şekli;

Görüldüğü üzere artık ortak methodlarımız bir noktada toplandı ve alt fabrika sınıflarımız ile her nesnemiz temiz şekilde üretildi.

4. Abstract Factory Pattern: Bu Design Pattern altında aynı işlemlerin farklı sistemler veya koşullar altında farklı sınıflar ile oluşturulmasını hedefliyor olmamız gerekir, Örneğin bir araç üreticisiyiz, Amerika ve Avrupa Piyasalarına araba ve motorsiklet çıkartıyoruz. Bu durumda bu pattern bizim işimizi görecektir,

Öncelikle Modellerimizi Oluşturuyoruz.

Şimdiki adımda bu özel taşıtları kendi fabrikalarında üretilmelerini sağlamalıyız.

ve son olarak kullanımını görelim

Uzun ama faydalı olacağını düşündüğüm konuyu burada bitirirken, Yazıda her hangi bir hata ile karşılaştıysanız veya gelecek yazılarda üzerine değinilmesini istediğiniz bir nokta varsa lütfen yorum olarak yazınız.

Alameddin ÇELİK

--

--

Alameddin Çelik
Alameddin Çelik

No responses yet