Rust語言之GoF設計模式:備忘錄Memento模式
Memento允許製作物件狀態的快照並能在以後恢復這些狀態。
trait Memento<T> { fn restore(self) -> T; fn print(&self); } struct Originator { state: u32, } impl Originator { pub fn save(&self) -> OriginatorBackup { OriginatorBackup { state: self.state.to_string(), } } } struct OriginatorBackup { state: String, } impl Memento<Originator> for OriginatorBackup { fn restore(self) -> Originator { Originator { state: self.state.parse().unwrap(), } } fn print(&self) { println!("Originator backup: '{}'", self.state); } } fn main() { let mut history = Vec::<OriginatorBackup>::new(); let mut originator = Originator { state: 0 }; originator.state = 1; history.push(originator.save()); originator.state = 2; history.push(originator.save()); for moment in history.iter() { moment.print(); } let originator = history.pop().unwrap().restore(); println!("Restored to state: {}", originator.state); let originator = history.pop().unwrap().restore(); println!("Restored to state: {}", originator.state); } |
事件溯源 EventSourcing 屬於一種備忘錄模式,使用事件播放投射來獲得歷史上任何一個時刻的狀態,也成為時光旅行。
相關文章
- Rust語言之GoF設計模式: 模板方法模式RustGo設計模式
- Rust語言之GoF設計模式:原型模式RustGo設計模式原型
- Rust語言之GoF設計模式:迭代器模式RustGo設計模式
- Rust語言之GoF設計模式:工廠模式RustGo設計模式
- 設計模式 - 備忘錄模式 ( Memento )設計模式
- Rust語言之GoF設計模式:責任鏈模式RustGo設計模式
- Rust語言之GoF設計模式:中介者Mediator模式RustGo設計模式
- Rust語言之GoF設計模式:抽象工廠模式RustGo設計模式抽象
- java設計模式-備忘錄模式(Memento)Java設計模式
- Rust語言之GoF設計模式:Flyweight享元模式RustGo設計模式
- Rust語言之GoF設計模式:靜態工廠RustGo設計模式
- C#設計模式系列:備忘錄模式(Memento)C#設計模式
- 設計模式--備忘錄模式Memento(行為型)設計模式
- JAVA設計模式之 備忘錄模式【Memento Pattern】Java設計模式
- Rust語言之GoF設計模式: 直譯器Interpreter模式RustGo設計模式
- 備忘錄模式(Memento)模式
- Java備忘錄模式(Memento模式)Java模式
- Rust語言之GoF設計模式:介面卡AdapterRustGo設計模式APT
- 設計模式的征途—20.備忘錄(Memento)模式設計模式
- Net設計模式例項之備忘錄模式(Memento Pattern)(2)設計模式
- 設計模式----備忘錄模式設計模式
- 設計模式 - 備忘錄模式設計模式
- 設計模式(十九):備忘錄模式設計模式
- 設計模式之備忘錄模式設計模式
- 簡說設計模式——備忘錄模式設計模式
- 極簡設計模式-備忘錄模式設計模式
- GoLang設計模式11 - 備忘錄模式Golang設計模式
- Python設計模式-備忘錄模式Python設計模式
- 大話設計模式—備忘錄模式設計模式
- 設計模式漫談之備忘錄模式設計模式
- 23種設計模式之備忘錄模式設計模式
- 折騰Java設計模式之備忘錄模式Java設計模式
- 設計模式 | 備忘錄模式及典型應用設計模式
- 19.java設計模式之備忘錄模式Java設計模式
- iOS設計模式之四:備忘錄模式和命令模式iOS設計模式
- 備忘錄設計模式知識概括設計模式
- 行為型設計模式 - 備忘錄模式詳解設計模式
- 設計模式_GoF設計模式Go