İçeriğe geç

Adapter Pattern

Merhabalar bu yazımda Adapter tasarım kalıbını inceleyeceğiz.

Adapter tasarım kalıbı isminden’de anlaşılacağı gibi Adaptör anlamına gelir. Yazılım kalıplarıda aynı hayatın içindeki sorunların yazılıma modellenmiş halidir dersek çok doğru olur. Yurt dışında farklı prizlerin bulunduğunu hepimiz biliyoruz burada kullandığımız şarj aletlerini kullanmak için bazı ülkelerde dönüştürücüye ihtiyacımız vardır. Aynı bu mantık ile Adapter tasarım kalıbı dönüştürücü görevi görür ve bu amaç ile tasarlanmıştır.

Aynı sınıfı farklı şekillerde kullanmak veya iki farklı bir birinden bağımsız sınıfı birleştirmek için kullanılır. Bu sayede diğer kalıplarda olduğu gibi yeni eklemelerde yapabilmekteyiz.

Ana sınıfı değiştirmeden adapter sınıfları yardımı ile farklı çıkışlar üretebiliriz.

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

protocol mathString {
    var getSum:String {get}
    var getMulti:String {get}
}

class Math {
    
    var x:Int
    var y:Int
    
    init(x:Int,y:Int) {
        self.x = x
        self.y = y
    }
    
    func sum() -> Int {
        return x + y
    }
    
    func multi() -> Int {
        return x * y
    }
    
}

class MathAdapter:mathString {
    
    private let mathTarget:Math!
    
    init(target:Math) {
        self.mathTarget = target
    }
    
    var getSum: String {
        return String(mathTarget.sum())
    }
    
    var getMulti: String {
        return String(mathTarget.multi())
    }
    
}

let obj = Math(x: 5, y: 9)
obj.sum()

let strFormat = MathAdapter(target: obj)
strFormat.getSum

Bu örneğimdede ana sınıfı ellemeden çıktıyı String haline dönüştüren adapter tasarım yapısını görebilirsiniz.

Tarih:Design PatternsiOS

Bu yazı yorumlara kapalı.

Copyright © 2020 Kenan Atmaca