İçeriğe geç

Facade Pattern

Merhabalar bu yazımda yararlı tasarım kalıplarından Facade Pattern kullanımını inceleyeceğiz.

Facade (Cephe) kalıbı oldukça kullanılan bir kalıp ancak buna benzer yapılar kodlarken çoğu kişi bunun Facade kalıbı olduğunu bilmez.

Mantık olarak tek bir sınıf değilde olayları çoklu sınıflara ayırıp tek sınıftan yönetmeyi ele alır. Modelimizi çoklu alt sınıflara ayırıp buralarda fonksiyonlar değişkenler tanımlayabiliriz. Alt sınıfları tek sınıfta toplayan ve client taraflı sadece bu sınıf ile haberleşilen birde Facade sınıfımız olacaktır. Burada tüm modül, alt sınıf kontrol işlemleri gerçekleştirilir.

Bu diyagramdada gördüğümüz gibi Client sadece Facade sınıfı ile etkileşim içindedir.

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

class Query {
    
    class func check() {
        print("checked")
    }
    
    class func insert() {
        print("Insert")
    }
    
    class func query() {
        print("Fetch")
    }

}

class Register {
    
    func registerUser(nick:String,pass:String) {
        Query.check()
        Query.insert()
        print("Register Complate")
    }
}

class Login {
    
    func loginUser() {
        Query.query()
        print("Login user...")
    }
    
}

class FacadeSys {
    
    private var nick:String
    private var pass:String
    
    private var rregister:Register
    private var llogin:Login
    
    init(nick:String,pass:String) {
        
        self.nick = nick
        self.pass = pass
        
        rregister = Register()
        llogin = Login()
        
    }
    
    func register() {
        self.rregister.registerUser(nick: self.nick, pass: self.pass)
    }
    
    func login() {
        self.llogin.loginUser()
    }
    
}


let obj = FacadeSys(nick: "Kenan", pass: "000000")
obj.register()
print("---")
obj.login()

 

 

Tarih:Design PatternsiOS

Bu yazı yorumlara kapalı.

Copyright © 2020 Kenan Atmaca