Factory Design Pattern – Fabrika Tasarım Şablonu

Bir otomotiv fabrikasının yazılımı yazdığınızı düşünelim. Bu fabrikada Audi ve Bmw markalarına ait arabalar üretiliyor. Teknik olarak düşündüğümüzde her arabanın bir markası, modeli, fiyatı, motor gücü vb.gibi özellikleri vardır. Biz yazılımcı olarak bu her model için bir sınıf oluşturmaya başladıkça satır sayıları kontrolsüz bir şekilde artacak ve satır satır belki yeniden kod yazmak zorunda kalacağız. Bu gibi alt sınıfları çok olan sınıfların üretiminde Factory Design Pattern(Fabrika Tasarım Şablonu) kullanılmaktadır.

uml4

Yukarıda UML şablonunu incelediğimizde ArabaFactory’e ait BmwFactory ve NissanFactory sınıfları oluşturulmaktadır. Bu sınıflar ile aracılığı ile Audi ve Nissan’ın arabaları ürütilecektir. Bu alt modeller ise en başta konuştuğumuz gibi araçların belirli bir strandartları olduğu için Araba sınıfını kalıtım olarak almaktadır. Şimdi kodlamamıza geçelim.

Yukarıda ilk olarak Araba sınıfımızı oluşturarak içinde yer alacak bazı özellikleri ve metotları belirledik.

Yukarıda ki sınıfta ise Araba sınıfı BmwZ4 sınıfını türetti ve yapıcı metodunda sadece fiyat parametresini aldı.

BmwZ4 için yapılan işlemlerin aynısını Nissan350z sınıfı içinde yapıldı.

ArabaFactory sınıfımızı abstract class olarak belirledik. Böylece bu sınıfı kalıtım olarak alan diğer sınıflar bu sınıfın hazır metotlarını kullanma ve createAraba metotunu kendilerine uyarlayarak yazma imkanına kavuşacaklar. arabaListesi değişkeni ile üretilen arabaların listesini tutmayı sağladık. Sınıfın yapıcı metotunda createAraba() fonksiyonunu kullanıdk ki bu sınıfa ait veya alt sınıfına ait bir nesne üretildiğinde otomatik olarak creteAraba() metotu devreye girsin.

BmwFactory sınıfı ArabaFactory sınıfını kalıtım olarak alarak createArabasa metodunu ezerek kendisine uygun biçimde kodları yazdı. Burada dikkat edin createAraba metodu içersinde araba listesine BmwZ4 sınıfı üretilerek listeye eklendi. Yeni modeller oluştuğunda bu listeye eklememiz yeterli olacak.

BmwFactory için geçerli olan kodlar NissanFactory içinde geçerli. Burada da Nissan350z sınıfı listeye eklendi.

ArabaFactory sınıfı alt sınıfları olan BmwFactory ve NissanFactory alt sınıflarının nesnesi üretildi. Üretilen bu nesneler ile daha önce fabrikalarında üretilmesi için tanımlanmış olan araba modelleri for ile tek tek ekrana aşağıda ki gibi yazdırıldı.

factory-design-pattern-araba


Java Developer

Yazıyı Paylaş

Recent Articles

Yorum Yaz

© 2026 Onur Arslan. Tüm Hakları Saklıdır. · RSS Yazıları · RSS Yorumları