设计模式学习--备忘录模式

来源:互联网 发布:淘宝金冠店值多少钱 编辑:程序博客网 时间:2024/05/22 13:02

备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将该对象恢复到原先保存的状态


Originator:发起人,负责创建一个备忘录Memento,用以记录当前时刻他的内部状态,并可使用备忘录恢复内部状态, Originator可根据需要觉得Memento存储Originator的那些内部状态

Memento:备忘录,负责存储Originator对象的内部状态,并可防止Originator以为的其他对象访问备忘录Memento.备忘录有两个接口,Caretaker只能看到备忘录的窄接口,他只能将备忘录传递给其他对象,Originator能够看到一个宽接口,允许他访问返回到先前状态所需的所有操作

Caretaker:管理者,复杂保存好备忘录Memento,不能对备忘录的内容进行操作或检查


备忘录模式是一种行为模式,该模式用于保存对象当前状态,并且在之后可以再次恢复到此状态,备忘录模式实现的方式需要保证被保存的对象状态不能被对象从外部访问,目的是为了保护好呗保存的这些对象状态的完整性以及内部实现不向外暴漏

使用场景:需要保存一个对象在某一个时刻的状态或部分状态;  如果用一个接口来让其他对象得到这些状态,将会暴漏对象的实现细节并破坏对象的封装性,一个对象不希望外界直接访问其内部状态,通过中间对象可以间接访问其内部状态


备忘录模式是在不破坏封装的条件下,通过备忘录对象存储另外一个对象内部状态的快照,在将来合适的时候吧这个对象还原到存储起来的状态

优点:给用户提供可一种可以恢复状态的机制,可以使用户比较方便的回到某个历史的状态

实现了信息的封装,使得用户不需要关系状态的保存细节

确定:消耗资源,如果类的成员变量过多,势必会占用比较大的资源,而且每一次保存都会消耗一定的内存.

0 0