图解设计模式读书笔记(十五)——Memento(备忘录)模式

使用场景:

需要保存状态,以便将来执行redo/undo操作来恢复状态。多用在棋牌类游戏,书写编辑类应用上。

基本思想:

在保证封装性的基础上,将类的属性状态在外部保存起来。

保证封装性的方式起始就是控制好memento类的可见性,即对于敏感数据,不使用public修饰,一般不用修饰符修饰,使得只能在同一个包中类能够访问。

 

类关系图:

类图比较简单,Originator负责生产Memento,与Memento在同一个包中,能够访问Memento除了private外的所有方法属性。Caretaker通过Originator生成并持有Memento对象,以便在某个时刻恢复memento状态。

 

缺点:

由于需要备份,特别是多次备份时,资源消耗严重。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值