设计模式——备忘录模式
一、概念:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
二、UML示意图:
Originator是一个原始对象,它可以使用CreateMemento方法创建保存他当前内部状态的Memento对象,而这个Memento对象由Caretaker对象持有起来,当Originator对象需要回复到这个状态的时候,可以从Caretaker中取出这个Memento对象,并通过Originator对象的SetMemento方法设置进去,从而把对象的状态恢复成被保存时的状态。
3、优缺点
优点:
- 把原始对象Originator的内部状态封装了起来,起到了对外界的隔离作用,降低了耦合性
- Originator对象的内部状态由Memento对象来保存,Memento对象由Caretaker来管理,符合单一职责原则
缺点:
- 当需要备份的对象状态属性成员多或者需要备份很多个对象时,消耗大