İçeriğe geç

Proxy Pattern

Merhabalar bu yazımda tasarım kalıplarından Proxy Pattern nasıl kullanılır öğrenmiş olacağız.

Önemli ve kullanımı yüksek olan kalıplardan olan Proxy (Vekil) kalıbı internetin oluşumu ile birlikte yazılım dünyasına kazandırılmış bir kalıptır.

Bu kalıp gerçek sınıf ile kullanıcı arasına girerek işlemlerin güvenli ve düzgün bir şekilde gerçekleşmesini sağlar. Bu kalıp genel olarak büyük veri yükleme duruma göre auth işleminden sonra işlem yapma, yükleme işlemi yapılırken kullanıcıyı ön bilgilendirme gibi yapılarda oldukça yoğun kullanılmaktadır.

Gerçek sınıf ile Client arasında olduğu için Proxy sınıfında yapılan kontroller ile performans artışı ve gereksiz tüketimin önüne geçilebilinir. Bu sayede gereksiz yere Gerçek sınıfı yaratmaya gerek kalmaz.

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

protocol proxyProtocol {
    func download(_ site:String)
}

class Api: proxyProtocol {
    
    func download(_ site:String) {
        print("Download file %100 ... \(site)")
    }
    
}

class ApiProxy : proxyProtocol {
    
    private var api:Api!
    
    func auth(_ token: String) -> Bool {
        
        guard token == "XXX" else {
            return false
        }
        
        api = Api()
        
        return true
    }
    
    func download(_ site:String) {
        
        if api != nil {
            api.download(site)
        } else {
            print("@ Error Access Api Token")
        }
        
    }
    
}

let obj = ApiProxy()
obj.download("http://img.com/pwqr3") // Error

obj.auth("XXX")
obj.download("http://img.com/pwqr3") // Download

 

 

Tarih:Design PatternsiOS

Bu yazı yorumlara kapalı.

Copyright © 2020 Kenan Atmaca