Design Pattern Dersleri #3— Builder Pattern (Golang)
Builder Pattern nerede kullanılır? Kullanımındaki püf noktaları inceleyeceğimiz yazıya hoş geldiniz.
Builder Pattern Nedir?
Builder Pattern bir nesnenin oluşturulması sırasında çok fazla özelliğe sahip sürekli kullanılacak benzer nesneler için bu özellikleri her seferinde tekrardan atanmasını önlemek için kullanılan bir desendir.
Anlaşılması için bir örnek verecek olursak bir adet Margherita(pizza) yapmayı planlıyoruz ve aşağıdaki gibi Margheritanın içindeki malzemeleri tek tek ekliyoruz.
Sonuç olarak elimizde gerçekten istediğimiz malzemelerden oluşmuş bir pizzamız oluyor fakat bir süre sonra her margherita pizza tanımlarken bu işlemleri tekrarladığımızı düşünüyor ve bunun daha mantıklı bir yolu olmalı diye düşündüğümüz anda karşımıza Builder Pattern çıkıyor.
Peki builder Pattern ile tanımlayacak olsaydık bu tekrar eden kısım nasıl olacaktı onu bir inceleyelim.
Öncelikle daha önceden tanımladığımız tariflerden margherita tarifini seçiyor ve oluşturucumuza gönderip ondan bir pizza istiyoruz.
Gördüğünüz gibi çok kolay bir tanımlamamız oldu ve hangi malzemeyi koymamız gerektiğini hatırlamamıza da gerek kalmadı.
Tüm Kodları İnceleyelim…
- Pizzalarımız için yapımızı oluşturuyoruz.
2. Pizza türlerimizin tariflerini oluşturacak şekilde bir interface (arayüz ) oluşturuyoruz.
3. Sonradan kullanacağımız Pizza çeşitleri için tarifleri (builder) oluşturuyoruz.
Not: Örneğin anlaşılabilmesi kolay olsun diye sadece boolean değerlerden oluşan bir yapı kurduk. Daha kompleks yapılarda kullanımın avantajları daha belirgin görülecektir.
4. Tarifleri oluşturma işlemini yapacak Director(oluşturucu)yu oluşturuyoruz ve tarifteki pizzayı yapacak şekilde şekillendiriyoruz.
5. Kod içerisinde artık yeni yapımızı kullanabiliriz.
Teşekkürler
Alameddin Çelik
Önceki Yazılar
- Design Pattern Dersleri #2 — Strategy Pattern (Golang)
- Design Pattern Dersleri #1.2 (Golang ile)
- Design Pattern Dersleri #1 (Giriş + Factory Patterns)(PHP ve Golang ile)
İlginizi Çekebilecek Diğer Konular
- Genetik Algoritma #3 (Golang)
- SOLID Prensipleri (Alper Okutan’dan güzel bir yazıyı sizlere öneririm.)