19.02.2025
0
Beğenme
11
Görüntülenme
Merhaba ,
Bu yazımda, Java’da bazı nesne oluşturma durumlarında kullanabileceğimiz Builder Design Pattern’den bahsedeceğim. Kod yazarken birçok nesne oluşturuyoruz; bu nesnelerden bazıları basit, bazıları ise karmaşıktır. Peki, karmaşık durumlarda nesneleri nasıl oluşturursak kodun okunabilirliğini artırabilir ve esneklik sağlayabiliriz? İşte bu konuda karşımıza Builder Design Pattern çıkıyor.
Eğer oluşturduğumuz nesnenin birçok karmaşık ve opsiyonel (isteğe bağlı) alanı varsa, Builder Design Pattern kullanmak daha okunabilir, esnek ve bakımı kolay bir yapı sağlar. Örneğin, elimizde bir Pizza
sınıfı olduğunu düşünelim:
Bu şekilde, isteğe bağlı ve zorunlu birçok alan olduğunu düşünelim. Eğer Telescoping Constructor Pattern (birçok parametre ve varyasyonlar ile Constructor oluşturma ) , birçok farklı constructor tanımlamamız gerekecek. Bu yaklaşımda kodun okunabilirliği, bakım kolaylığı ve hata riski gibi dezavantajlar ortaya çıkabilir:
Bu şekilde farklı field’lara sahip nesneleri oluşturmak için birçok constructor yazmamız gerekecek.
Nesne oluşturma aşamasında ise yukarıdaki görüntü ile karşılşacağız.
Telescoping Constructor Pattern Dezavantajları :
Yukarıdaki yapıda Pizza
sınıfımız içerisinde bir static Builder
sınıfı oluşturduk. Builder
sınıfı içerisine de aynı field’ları koyduk ve opsiyonel olanlara default olarak bir değer atadık . Böylece örneğin pizza hamurunun glütenli olma durumu girilmediğinde default olarak glütensiz sayılacaktır . Pizza sınıfı içerisinde de tek bir Constructor yazdık ve parametrelerini Builder sınıfından alacak şekilde ayarladık . Main metodu içinde ise nesneleri aşağıdaki şekilde üretiyoruz .
Sonuç olarak, Java Builder Pattern kullanarak, çok sayıda opsiyonel parametre içeren sınıfların oluşturulmasında daha esnek, temiz ve okunabilir bir yaklaşım elde edersiniz. Builder Pattern, özellikle karmaşık nesneler oluşturmak için kullanışlıdır. Telescoping Constructor Pattern’de yaşanan constructor karmaşası ve okunabilirlik sorunlarını ortadan kaldırır. Tabii ki her durumda kullanmak doğru olmayacaktır; ancak bahsettiğim durumlar mevcutsa kullanmanız faydalı olacaktır.
Umarım bu yazı sizler için faydalı olmuştur :)
Kullanıcı yorumlarını görüntüleyebilmek için kayıt olmalısınız!
Mehmet Ali Kolcuk
Biruni Üniversitesi'nde 4. sınıf Bilgisayar Mühendisliği öğrencisi olup, back-end, front-end ve yazılım test alanlarında pratik deneyime sahibim. Sürekli öğrenme konusunda tutkuluyum ve kendimi geliştirmeye güçlü bir eğilimim var. Ekip içinde iş birliği yapma yeteneğine sahibim ve takım çalışmasına büyük değer veriyorum. Fikirlerimi ve çözümlerimi net bir şekilde ifade edebilen, başkalarının perspektiflerini anlayabilen bir iletişimciyim. Teknik ve teknik olmayan tartışmalar arasında köprü kurma yeteneğine sahibim, bu da başarılı proje sonuçlarına katkıda bulunmaktadır.
Konum
İstanbul, TR
Eğitim
Bilgisayar Mühendisliği (%100 Burslu) - Biruni Üniversitesi
İş Tecrübesi
Stajyer Full Stack Developer - Alttab Yazılım ve Kuluçka Merkezi
Stajyer Yazılım Test Mühendisi - Trive
Kurucu - Başkan - TECHNOLOGY AND INFORMATİON ENGİNEERİNG ÖĞRENCİ KULÜBÜ