İçeriğe geç

Memento Pattern

Merhabalar bu yazımda Memento tasarım kalıbının kullanımını göreceğiz.

Memento tasarım kalıbı çok yoğun olarak kullanılmasada bazı durumlarda işe yaramakta. Bu tasarım kalıbının amacı sınıf nesnelerimizi yedekleme yapmak ve geri dönüşü hızlı bir şekilde sağlamaktır. Olay aslında basit bir şekilde işler Bir adet ana sınıf, bir adet yedek sınıf ve birde ikisi arasında bulunan aracı sınıftan oluşur. Geri al işlemleri için oldukça makuldür.

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

protocol UserSetup {
    var nick:String? {get set}
    var pass:String? {get set}
    var age:Int? {get set}
    var gender:String? {get set}
}

class UserTemp:UserSetup {
    
    var nick: String?
    var pass: String?
    var age: Int?
    var gender: String?
    
}

class User:UserSetup {
    
    var nick:String?
    var pass:String?
    var age:Int?
    var gender:String?
    
    
    func backUp() -> UserTemp {
        let tmpUser = UserTemp()
        tmpUser.nick = nick
        tmpUser.age = age
        tmpUser.pass = pass
        tmpUser.gender = gender
        
        return tmpUser
    }
    
    func getBackUp(_ tmp:UserTemp) {
        self.nick = tmp.nick
        self.pass = tmp.pass
        self.age = tmp.age
        self.gender = tmp.gender
    }
    
}

class BackUp {
    var tmp:UserTemp?
}


let user = User()
user.nick = "Kenan"
user.age = 22
user.pass = "000000"
user.gender = "Male"

let backup = BackUp()

backup.tmp = user.backUp()

user.pass = "999999"

user.pass // 999999

user.getBackUp(backup.tmp!)

user.pass // 000000

 

 

Kategori:Design PatternsiOS

Bu yazı yorumlara kapalı.

Copyright © 2022 Kenan Atmaca