java23中设计模式——行为模式——Memento(备忘机制)
2019獨角獸企業重金招聘Python工程師標準>>>
Memento 備望錄模式定義:?
memento 是一個保存另外一個對象內部狀態拷貝的對象.這樣以后就可以將該對象恢復到
原先保存的狀態.?
Memento 模式相對也比較好理解,我們看下列代碼:?
public class Originator { ?
?
? ? private int number; ?
? ?private File file = null;?
? ?public Originator(){}?
? ?// 創建一個 Memento?
? ?public Memento getMemento(){?
? ? ?return new Memento(this);?
? ?}?
? ?// 恢復到原始值?
? ?public void setMemento(Memento m){?
? ? ? number = m.number;?
? ? ? file = m.file;?
? ?}?
}?
我們再看看 Memento 類:?
private class Memento implements java.io.Serializable{?
? private int number;?
? ?private File file = null;?
? ?public Memento( Originator o){?
? ? ?number = o.number;?
? ? ?file = o.file;?
? ?}?
}
可見 Memento 中保存了Originator 中的 number 和 file的值. 通過調用
Originator 中 number 和 file 值改變的話,通過調用 setMemento()方法可以恢復.?
Memento 模式的缺點是耗費大,如果內部狀態很多,再保存一份,無意要浪費大量內存.?
轉載于:https://my.oschina.net/dengdajun/blog/650506
總結
以上是生活随笔為你收集整理的java23中设计模式——行为模式——Memento(备忘机制)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 造梦西游ol灵尘怎么得 只有造梦西游3最
- 下一篇: 设计模式之Composite模式(笔记)