İçeriğe geç

Bridge Pattern

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

Bridge (Köprü) tasarım kalıbı adındanda anlaşılacağı üzre köprü görevi görev bir yapıdır. Yapı olarak bir sınıfın soyut öğelerini uygulama detaylarından ayırmak için kullanılır ve soyutlamayı değiştirmeden uygulama ayrıntılarını değiştirme olanağı sağlar.

Eğer duruma göre yapacağınız işlemleri, çıktıyı değiştirmek zorundaysanız bu yapıyı kullanmak oldukça mantıklı bir yaklaşım olacaktır. Ben aşağıdaki örneğimde duruma göre XML veya JSON döndürebilen bir sınıf kodlaması yaptım farklı olarak yazacağınız sistemde kullanıcı kredi kartı alışverişini taksit veya peşin yapabilir buna göre sadece uygun nesneyi gönderip ona bağlı işlemlerin gerçekleşmesini sağlayabilirsiniz.

Aşağıdaki yazdığım örneği inceleyebilirsiniz.

protocol Decoder {
    func decode()
}


class JSON: Decoder {
    func decode() {
        print("{JSON Decode}")
    }
}

class XML: Decoder {
    func decode() {
        print("<XML Decode>")
    }
}


class Bridge {
    private var format:Decoder
    
    init(_ format:Decoder) {
        self.format = format
    }
    
    func decodeProcess(){
        format.decode()
    }
}


class Web: Bridge {
    override init(_ format: Decoder) {
        super.init(format)
    }
    
    override func decodeProcess() {
        print("Web decode")
        super.decodeProcess()
    }
}

class Mobile: Bridge {
    override init(_ format: Decoder) {
        super.init(format)
    }
    
    override func decodeProcess() {
        print("Mobile decode")
        super.decodeProcess()
    }
}


let web = Web(JSON())
web.decodeProcess() // {JSON Decode}

let mobile = Mobile(XML())
mobile.decodeProcess() // <XML Decode>

 

 

Tarih:Design PatternsiOS

Bu yazı yorumlara kapalı.

Copyright © 2020 Kenan Atmaca