// // Memento.swift // 23设计模式 // // Created by 阳君 on 14/12/4. // Copyright (c) 2014年 六月. All rights reserved. // import Foundation /// Memento备忘录存储原发器对象的内部状态 class Memento { var state:String init(state:String) { self.state = state } }
// // Originator.swift // 23设计模式 // // Created by 阳君 on 14/12/4. // Copyright (c) 2014年 六月. All rights reserved. // import Foundation /// Originator原发器创建一个备忘录,用以记录当前时刻它的内部状态。使用备忘录恢复内部状态 class Originator { var state:String = "" // MARK: 数据封装 func createMemento() ->Memento { return Memento(state: state) } // MARK: 将数据重新导入 func setMemento(memento:Memento) { state = memento.state } // MARK: 显示 func showState() { print(state) } }
Caretaker.swift
// // Caretaker.swift // 23设计模式 // // Created by 阳君 on 14/12/4. // Copyright (c) 2014年 六月. All rights reserved. // import Foundation /// Caretaker负责保存好备忘录,不能对备忘录的内容进行操作或检查 class Caretaker { var memento:Memento? init() { } }
// 备忘录模式 let org = Originator() org.state = "开会中" let ctk = Caretaker() // 将数据封装在Caretaker ctk.memento = org.createMemento() org.state = "睡觉中" org.showState()// 显示 org.setMemento(ctk.memento!)//将数据重新导入 org.showState()
睡觉中
开会中