设计模式——备忘录模式

一、概念:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。

二、UML示意图:

 

 Originator是一个原始对象,它可以使用CreateMemento方法创建保存他当前内部状态的Memento对象,而这个Memento对象由Caretaker对象持有起来,当Originator对象需要回复到这个状态的时候,可以从Caretaker中取出这个Memento对象,并通过Originator对象的SetMemento方法设置进去,从而把对象的状态恢复成被保存时的状态。

3、优缺点

优点:

  • 把原始对象Originator的内部状态封装了起来,起到了对外界的隔离作用,降低了耦合性
  • Originator对象的内部状态由Memento对象来保存,Memento对象由Caretaker来管理,符合单一职责原则

缺点:

  • 当需要备份的对象状态属性成员多或者需要备份很多个对象时,消耗大
posted @ 2020-03-19 13:57  夜里寻星  阅读(107)  评论(0编辑  收藏  举报