Builder Design Pattern
Nedir Bu Builder Design Pattern?
Kod yazarken pojo sınıfı, model diye adlandırdığımız sınıfımız vardır. İçerisindeki instance’ları private olarak tanımlarız, getter/setter methodlarını tanımlarız.
Constructor yardımı ile bilgileri set ederiz.
Örnek olarak,
Builder design pattern kullanmadan görseldeki gibi tanımlama yapıyoruz.
Peki şöyle bir soru soracak olsak,
- 5 alanda doldurmak zorunlu olmazsa ne yapacağız?
- 3 alan bilgisi gelirse ne yapacağız?
- Her case için constructor mı oluşturacağız?
Tabii ki böyle bir şey mümkün olmayacak.
Bu tarz durumlarda builder design pattern kullanırsak aşağıdaki kod parçacığı karşımıza çıkmaktadır.
Employee class’ı basit bir şekilde anlatmak istersek,
- Employee class constructor’ı EmployeeBuilder nesnesini parametre olarak almaktadır.
- EmployeeBuilder Employee class içerisinde inner class olarak tanımladık.
- EmployeeBuilder class static tanımlanmıştır.
- Employee class’da get methodlarımız yer almaktadır.
- Inner Class(Builder) içerisinde set işlemlerini yapacağız.
- Eğer zorunlu alanlarımız varsa EmployeeBuilder class constructor’a parametre olarak yazıyoruz.
- Örnek kod parçasında firstName ve position alanları zorunlu olarak düşündüğümüz için constructor’daparametre olarak geçtik.
Main class’ımıza gelecek olursak,
Main class’ı basit bir şekilde anlatmak istersek,
- Static olarak tanımladığımız EmployeeBuilder’a Employee.EmployeeBuilder ile erişiyoruz.
- firstName ve position alanları zorunlu dediğimiz için constructor parametre olarak geçiyoruz.
- Diğer alanlardan doldurmak istediklerimizi doldurabiliriz. (salary no parameter)
Böylelikle daha kullanışlı bir pojo sınıfı elde etmiş oluyoruz 🙂
Github : Builder Design Pattern