19.02.2025

0

Beğenme

11

Görüntülenme

Java’da Builder Pattern: Karmaşık Nesneleri Yönetmenin Etkili Yolu

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ı :

  • Zayıf Okunabilirlik: Birçok constructor kullanmak, kodun okunabilirliğini azaltır ve hangi parametrenin ne anlama geldiğini anlamak zorlaşır.
  • Bakım Zorluğu: Parametre sayısı arttıkça constructor’ları yönetmek zorlaşır. Yeni bir parametre ekleme durumunda , tüm constructor’ların güncellenmesi gerekecektir.
  • Hata Riski: Constructor parametre sıralarını yanlış girmek, hatalara neden olabilir ve bu hatalar compile time’da yakalanmaz.

Eğer Java Builder Metot Kullanırsak ;

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 :)

Java 102
Design Patterns

Yorumlar

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Ü

© 2021 Patika Dev

facebook
twitter
instagram
youtube
linkedin

Disclaimer: The information /programs / events provided on https://patika.dev and https://risein.com are strictly for upskilling and networking purposes related to the technical infrastructure of blockchain platforms. We do not provide financial or investment advice and do not make any representations regarding the value, profitability, or future price of any blockchain or cryptocurrency. Users are encouraged to conduct their own research and consult with licensed financial professionals before engaging in any investment activities. https://patika.dev and https://risein.com disclaim any responsibility for financial decisions made by users based on information provided here.