iOS开发
1. 文本编辑(如撤销/重做功能)
class TextEditor {
private var content: String = ""
func write(_ text: String) {
content += text
}
func getContent() -> String {
return content
}
func createMemento() -> Memento {
return Memento(state: content)
}
func restore(from memento: Memento) {
content = memento.getState()
}
}
class Memento {
private let state: String
init(state: String) {
self.state = state
}
func getState() -> String {
return state
}
}
class Caretaker {
private var mementos: [Memento] = []
func save(memento: Memento) {
mementos.append(memento)
}
func undo() -> Memento? {
return mementos.popLast()
}
}
// 使用示例
let editor = TextEditor()
let caretaker = Caretaker()
editor.write("Hello, ")
caretaker.save(memento: editor.createMemento()) // 保存状态
editor.write("World!")
caretaker.save(memento: editor.createMemento()) // 保存状态
print(editor.getContent()) // 输出: Hello, World!
// 撤销
if let memento = caretaker.undo() {
editor.restore(from: memento)
}
print(editor.getContent()) // 输出: Hello, 2. CoreData 或 UserDefaults 数据恢复
3. 游戏开发中的存档与读档功能
4. 绘图应用中的撤销/重做
5. 状态恢复(State Restoration)
6. 配置管理
7. UndoManager
总结
Last updated