1- Builder (Kurucu) Pattern
Merhaba arkadaşlar, bu yazı ile birlikte bir seriye başlamayı düşünüyorum. Design Pattern (Tasarım Desenleri), yazılımı geliştirme aşamasında basmakalıp sorunlara karşı oluşturulmuş ve standart haline getirilmiş bu yapılardan bu seri boyunca bahsetmek istiyorum.
Nasıl yani, basmakalıp sorun derken ?
Hepimiz bir şekilde kod yazıyoruz ya da yazmaya çalışıyoruz. Peki gerçekten standartlara uyarak mı yazıyoruz ya da amaan şimdilik işimi görsün sonra revize ederiz diye mi yazıyoruz. Eğer ikincisi iseniz yazıya devam edin. 😀
Tamam da ne gerek var tasarım desenlerine ?
Düşünün bir ekibiniz var ve sizin yazdığınız kodun bir kısmını başka bir arkadaşınız yazıyor ya da yazmış olduğunuz kodu bir süre sonra bakımı gerekti (Kullandığınız kütüphanenin yeni bir sürümü çıkmış olabilir ya da gereksinimler bir kısım değişmiş olabilir). Koda baktığınızda ben burada ne yapmışım ya ? dememek için büyüklerimiz Design Pattern diye bir kavramı ortaya çıkardı. Lafı çok fazla uzatmadan bu yazı da anlatmak istediğim Kurucu (Builder) desenine geçiyorum.
Örneklerimi java üzerinden anlatacağım.
Mesela bir Company sınıfımız olsun.
Bu sıınıfı oluşturmak istediğimizde yapıcı metodunda 3 parametre gerekli olacaktır ama siz hepsini kullanmayacaksanız başka bir yapıcı method oluşturup istediğiniz parametreleri o method da tanımlayıp da oluşturursunuz evet doğru bir yöntem fakat kullanışlı değil.
Onun yerine peki şu şekilde yapsak.
Company sınıfının içerisinde bir statik sınıf oluşturuyoruz ve gerekli değişkenleri bu sınıfın yapıcısında veriyoruz gelin bu sınıfı nasıl oluşturduğumuza bakalım.
daha düzgün daha kullanışlı bir kod parçası burada Company name zorunlu alandı ve farkettiyseniz kurucu sınıfın yapıcıında parametre olarak geçtik ardından address değişkenine değer atadık (eğer atamasak da sınıfı oluşturmamıza engel olmayacaktı) ve en son build() diyerek sınııfı oluşturmuş olduk.
Bu yazı da anlatmak istediklerim bu kadar bir sonraki yazı da Observer (Gözlemci) tasarım desenini anlatmayı düşünüyorum. Görüş ve düşünceleriniz olursa bunu benimle paylaşırsanız memnun kalır ve bir sonraki yazıda dikkate almaya çalışırım.
Hoşçakalın. 😃