设计模式_备忘录模式

来源:互联网 发布:大数据推动技术创新 编辑:程序博客网 时间:2024/05/18 02:34

备忘录模式

1、定义

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

2、使用场景

1)、需要保存一个对象在某一时刻的状态或者部分状态

2)、如果用一个接口来让其他对象得到这些状态,将会暴露对象的实现细节并破坏对象的封装性,一个对象不希望外界直接访问其内部状态,通过中间对象可以间接访问其内部状态。

3、UML类图

Originator:负责创建一个备忘录,可以记录、恢复自身的内部状态。同时Originator还可以根据需要决定Memoto存储自身的哪些内部状态

Memonto:备忘录角色,用于存储Originator的内部状态,并且可以防止Originator以外的对象访问Memonto

Caretaker:负责存储备忘录,不能对备忘录的内容进行操作和访问,只能够将备忘录传给其他对象

4、代码示例

Activity 源码

5、总结

优点:

1)、给用户提供了一种可以恢复状态的机制,可以使用户能够比较方便地回到某个历史状态。

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

缺点:

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


0 0