İçeriğe geç

Builder Pattern

Merhabalar bu yazımda Builder Pattern nasıl kullanılır bunu görmüş olacağız.

Builder tasarım kalıbı sınıflarda fazla obje kullanılıyorsa ve objelerin bazıları optional ise yanı ilk yaratılışta ihtiyaç yok ancak daha sonradan eklemeler yapılabilir tarzında bir yapınız var ise Builder kalıbını kullanmanız performans ve kod okunaklığında artış sağlayacaktır.

Aşağıdaki yazdığım örneği inceleyebilir ve Builder tasarım kalıbının kullanım mantığını anlayabilirsiniz.

protocol Object {
    var width:Double? {get set}
    var height:Double? {get set}
    var color:String? {get set}
}

protocol ObjectBuilder {
    
    var object:Object {get set}
    
    func setWidth(width:Double?)
    func setHeight(height:Double?)
    func setColor(color:String?)
}

class Table: Object {
    
    var width: Double?
    var height: Double?
    var color: String?
    
}

class Builder: ObjectBuilder {
    
    var object: Object
    
    init(_ object:Object) {
        self.object = object
    }

    func setWidth(width: Double?) {
        object.width = width
    }
    
    func setHeight(height: Double?) {
        object.height = height
    }
    
    func setColor(color: String?) {
        object.color = color
    }
    
}

class Creator {
    
    var builder:ObjectBuilder
    
    init(_ builder:ObjectBuilder) {
        self.builder = builder
    }
    
    func build(width:Double?,height:Double?,color:String?) {
        builder.setWidth(width: width)
        builder.setHeight(height: height)
        builder.setColor(color: color)
    }
    
}


let builder = Builder(Table())
let creator = Creator(builder)

creator.build(width: 200, height: 200, color: nil)
creator.builder.object.width // 200

 

 

Tarih:Design PatternsiOS

Bu yazı yorumlara kapalı.

Copyright © 2021 Kenan Atmaca