Builder Design Pattern Kod Örneğiyle

Murat Çakmak
1 min readApr 18, 2022

Builder; Çok fazla parametre alan sınıflarda veya çok fazla constructor olan sınıfları daha okunaklı kolay oluşturabilmemiz için tasarlanmış desendir.

Bu tasarım deseninde isteğe bağlı Director’de kullanılabilmektedir.
Director; Birden fazla farklı özelliklerdeki Builder’ı tekrar tekrar tanımlamak yerine director de bir kere tanımlayarak ve nesneye ait minimal gibi birden farklı üretimlerde sergilememizi sağlar.

Builder Design Pattern

Wiki: https://en.wikipedia.org/wiki/Builder_pattern

Hangi durumlarda kullanmalıyız ?

  • Telescopic constructor’nız çok fazlaysa.
    class Pizza {
    Pizza(int size) { … }
    Pizza(int size, boolean cheese) { … }
    Pizza(int size, boolean cheese, boolean pepperoni) { … }
  • Bu tarz oluşturmalar yapıyorsanız.
    new Pizza(50,50,null, null, true, null,null,null) ;

Builder’ı Maddelersek

  • Ürüne ait sınıfının oluşturulması ve constructor’nın zorunlu kalınmadıkça yazılmaması.
  • Ürüne ait çeşitli Builder(inşa planı) sınıfların oluşturulması.
  • Ürünü hangi sırayla ve farklı biçimlerde oluşturmak için Director oluşturulması. Zorunlu değildir.

Kod Örneği 1

Okuduğum bir çok makale de Kod Örneği 2 tarzında bir yöntemle karşılaştım ancak bu bana çok mantıklı gelmedi. Çünkü Builder Design Pattern UML’ne aykırıydı. Biraz araştırınca Functional tasarım desenlerinin içerisinde olan Fluent Interface Design Pattern olduğunu öğrendim. Ancak yine de bu yöntemi Builder olduğunu inanarak kullananlar mevcut gibi görünüyor.

Kod Örneği 2 (Önerilmez)

--

--