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 屬於一種備忘錄模式,使用事件播放投射來獲得歷史上任何一個時刻的狀態,也成為時光旅行。
相關文章
- 設計模式 - 備忘錄模式 ( Memento )設計模式
- Rust語言之GoF設計模式: 模板方法模式RustGo設計模式
- Rust語言之GoF設計模式:原型模式RustGo設計模式原型
- Rust語言之GoF設計模式:迭代器模式RustGo設計模式
- Rust語言之GoF設計模式:工廠模式RustGo設計模式
- Rust語言之GoF設計模式:Flyweight享元模式RustGo設計模式
- Rust語言之GoF設計模式:責任鏈模式RustGo設計模式
- Rust語言之GoF設計模式:中介者Mediator模式RustGo設計模式
- Rust語言之GoF設計模式:抽象工廠模式RustGo設計模式抽象
- Rust語言之GoF設計模式: 直譯器Interpreter模式RustGo設計模式
- 備忘錄模式(Memento)模式
- Rust語言之GoF設計模式:靜態工廠RustGo設計模式
- Rust語言之GoF設計模式:介面卡AdapterRustGo設計模式APT
- 設計模式----備忘錄模式設計模式
- 設計模式之備忘錄模式設計模式
- 簡說設計模式——備忘錄模式設計模式
- 極簡設計模式-備忘錄模式設計模式
- GoLang設計模式11 - 備忘錄模式Golang設計模式
- 設計模式漫談之備忘錄模式設計模式
- 設計模式 | 備忘錄模式及典型應用設計模式
- 折騰Java設計模式之備忘錄模式Java設計模式
- 19.java設計模式之備忘錄模式Java設計模式
- 設計模式:可複用物件導向軟體及基礎:4-7 物件行為模式:備忘錄模式(Memento)設計模式物件
- 備忘錄設計模式知識概括設計模式
- 行為型設計模式 - 備忘錄模式詳解設計模式
- 設計模式(Swift) - 2.單例模式、備忘錄模式和策略模式設計模式Swift單例
- 無廢話設計模式(16)行為型模式--備忘錄模式設計模式
- 《設計模式七》備忘錄、模板方法、狀態模式及設計模式設計總結設計模式
- 抽絲剝繭——備忘錄設計模式設計模式
- Swift 中的設計模式 #2 觀察者模式與備忘錄模式Swift設計模式
- 軟體設計模式學習(二十二)備忘錄模式設計模式
- Java進階篇設計模式之十二 ---- 備忘錄模式和狀態模式Java設計模式
- 行為型模式:備忘錄模式模式
- 設計模式 第十章 備忘錄模式、直譯器模式、狀態模式設計模式
- 設計模式學習筆記(十八)備忘錄模式及其實現設計模式筆記
- Go語言實現GoF設計模式:介面卡模式Go設計模式
- 19_備忘錄模式模式
- 設計模式(二十)——備忘錄模式(遊戲角色狀態恢復問題)設計模式遊戲