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()
Bu yazı yorumlara kapalı.