Builder Tasarım Şablonu nedir ? Nasıl ve neden kullanılır.

OOP dillerin her biri bizlere bağıra bağıra, kendimizi tekrar etmememiz gerektiğini söyler. Günümüzde her ne kadar bu kavrama uyan programcılar artsa da yakın zamana kadar yazılmış yazılımlar bu prensipten bihaberdi. 

 

Peki neden kendimizi tekrar etmememiz gerekir ? Ya da kendimizi tekrar ettiğimiz zaman ne olur ? Veya kendimizi nasıl tekrar etmiş oluruz ?

 

Aslında gündelik yaşantımıza baktığımızda bu sorunla her zaman karşılaşırız. Robot mekaniklerimiz sayesinde bir işi sürekli ezbere yaparız.

Mesela işten ya da okuldan eve dönerken kullandığımız yol her zaman aynı olur.

Her zaman olmasa da ara sıra farklı yollar kullananlara lafımız yok tabi.

 

Bahsettiğim örnekten yola çıkarak bir şeyleri gözlemleyebiliriz elbette, bakalım bunlar ne olacak ?

  • Evinize giden o güzel mi güzel yokuş aşağı yolun tadilatta olması, bize yeni bir yol arayışı sunacaktır.
  • Yeni bir yol ararken birden fazla yol bulmuş olabiliriz.
  • Bulduğumuz yollardan bir kaçı evimize daha yakın olabilir.
  • Ve yine bulduğumuz yollardan bir kaçı hem evimize yakın olup, hem de yanında market hatta otobüs durağı barındırabilir.

Gördüğünüz gibi gidişat sürekli değişebilir ve değişim durumu halinde bize yeni ‘+’ lar kazandırabilir.

Bu durumu bir program ortamında düşünürsek eğer böyle bir şeyler yazdığımızda bir sorun teşkil etmeyecektir.

Peki çok güzel. 100 adet kişi nesnesi oluşturduk. Peki ya ‘Person‘ tadilatta olsaydı ne olurdu ?

Person nesnemize bir parametre daha eklediğimizde bizim 100 adet nesnemiz yalan olacaktı.

Ya da 20 tane nesne silmemiz gerekseydi ? Veya 34. den sonra 17 tane daha eklemek isteseydik ?

Durum değişmez. Hepsinde de programı uzunca etkileyecek sorunlar çıkardı.

 

Bu durumda Builder tasarım şablonu devreye giriyor.

Builder tasarım şablonu ile aslında parametreleri birer metot-field mantığıyla yönetiriz çünkü daha esnek olur.

O zaman Person için bir tane Builder şablonu sınıfı hazırlayalım.

Temel anlamıyla tüm yapı taşlarımız bunlar. Bunlar bizim programımıza bel kemiği olacaktır.

Varsayılan ayarlar olmalı ki biz diğer field-ları etkileyebilelim. Aksi takdirde yine parametre girmemiz gerekecekti ve tekrardan başa dönmüş olacaktık.

Ve sıra o küçük yapı taşlarını dizayn etmede… Hadi bakalım ne çıkacak

Person sınıfının tüm parametrelerini, kendi İnşaatçısında kontrol edebilir hale geldik.

Her şey iyi güzel de bu sınıf hala bir ‘Person‘ nesnesi oluşturmuyor ? Bu nasıl olacak diye düşünmememiz için

bir adet ‘İnşa et‘ metodumuz olmalı.

Her şey bu kadar. Sınıfları manipüle etmiş gibi oluyoruz aslına baktığımızda 🙂 unutmayın !

Kendi işinizi kolaylaştıramazsanız kullanıcı refahı asla mevcut olmaz.


Bir de kullanımına bakalım nasıl bir şey çıkacak.

Builder tasarım şablonu, karmaşık düzende ve kendini tekrar eden kod yazımlarında fazlasıyla etkilidir.

Gördüğümüz gibi parametreler arttığında hiç bir sorun olmayacaktır. Yeni bir nesne tanımlaması daha da pratik oluyor ve daha performanslı.

 

Diğer konularımıza da bakın !