java23中设计模式——行为模式——Memento(备忘机制)
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
Memento 備望錄模式定義:?
memento 是一個(gè)保存另外一個(gè)對(duì)象內(nèi)部狀態(tài)拷貝的對(duì)象.這樣以后就可以將該對(duì)象恢復(fù)到
原先保存的狀態(tài).?
Memento 模式相對(duì)也比較好理解,我們看下列代碼:?
public class Originator { ?
?
? ? private int number; ?
? ?private File file = null;?
? ?public Originator(){}?
? ?// 創(chuàng)建一個(gè) Memento?
? ?public Memento getMemento(){?
? ? ?return new Memento(this);?
? ?}?
? ?// 恢復(fù)到原始值?
? ?public void setMemento(Memento m){?
? ? ? number = m.number;?
? ? ? file = m.file;?
? ?}?
}?
我們?cè)倏纯?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的值. 通過調(diào)用
Originator 中 number 和 file 值改變的話,通過調(diào)用 setMemento()方法可以恢復(fù).?
Memento 模式的缺點(diǎn)是耗費(fèi)大,如果內(nèi)部狀態(tài)很多,再保存一份,無意要浪費(fèi)大量?jī)?nèi)存.?
轉(zhuǎn)載于:https://my.oschina.net/dengdajun/blog/650506
總結(jié)
以上是生活随笔為你收集整理的java23中设计模式——行为模式——Memento(备忘机制)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 造梦西游ol灵尘怎么得 只有造梦西游3最
- 下一篇: 招商银行app怎么看银行卡卡号