定义
在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将该对象恢复到原先保存的状态;
- 用户保存对象的当前状态,并且以后可以再次恢复到此状态,通俗说法“后悔药”;
- 需要保证被保存对象的状态不能被对象外部访问(目的是为了保护好被保存的对象的状态的完整性,以及内部实现不想外暴露)
应用场景
- 需要保存对象在某一个时刻的状态或者部分状态
- 如果用一个接口来让其他对象得到这些状态,将会暴露对象的内部实现细节并且破坏对象的封装性,一个对象不希望外界访问其内部状态,通过中间对象可以间接访问其内部状态。
角色划分
- 角色一:(Originator)负责创建一个备忘录,可以记录或者回复内部状态
- 角色二:(Menmento)备忘录角色,用于存储角色一的内部状态,并且可以防止角色一以外的对象访问角色二
- 角色三:(Caretaker)负责存储备忘录,不能够向外暴露备忘录内容,以及进行操作;
网友评论