Memento(备忘录)——对象行为模式
2010-12-28 17:08
381 查看
意图:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
单就实现保存一个对象在某一时刻的状态的功能,还是很简单的——将对象中要保存的属性放到一个专门管理备份列表的的对象中,需要的时候则调从备份的列表中将该对象的属性放回去。但是为了能让你的备份对象访问到原对象中的属性,是否意味着你就要全部公开或者部分公开对象原本私有的属性呢?如果你的做法已经破坏了封装,那么就要考虑重构一下了。
备忘录模式的组成部分:
(1)备忘录(Memento)角色:备忘录角色存储“备忘发起角色”的内部状态。“备忘发起角色”根据需要决定备忘录角色存储“备忘发起角色”的哪些内部状态。为了防止“备忘发起角色”以外的其他对象访问备忘录。备忘录实际上有两个接口,“备忘录管理者角色”只能看到备忘录提供的窄接口——备忘录角色中存放的属性对它来讲是不可见的。“备忘发起角色”则能够看到一个宽接口——能够看到自己放入备忘录角色中属性。
(2)备忘发起(Originator)角色:“备忘发起角色”创建一个备忘录,用以记录当前时刻它的内部状态。在需要时使用备忘录恢复内部状态。
(3) 备忘录管理者(Caretaker)角色:负责保存好备忘录,但不能对备忘录的内容进行操作或检查。
单就实现保存一个对象在某一时刻的状态的功能,还是很简单的——将对象中要保存的属性放到一个专门管理备份列表的的对象中,需要的时候则调从备份的列表中将该对象的属性放回去。但是为了能让你的备份对象访问到原对象中的属性,是否意味着你就要全部公开或者部分公开对象原本私有的属性呢?如果你的做法已经破坏了封装,那么就要考虑重构一下了。
备忘录模式的组成部分:
(1)备忘录(Memento)角色:备忘录角色存储“备忘发起角色”的内部状态。“备忘发起角色”根据需要决定备忘录角色存储“备忘发起角色”的哪些内部状态。为了防止“备忘发起角色”以外的其他对象访问备忘录。备忘录实际上有两个接口,“备忘录管理者角色”只能看到备忘录提供的窄接口——备忘录角色中存放的属性对它来讲是不可见的。“备忘发起角色”则能够看到一个宽接口——能够看到自己放入备忘录角色中属性。
(2)备忘发起(Originator)角色:“备忘发起角色”创建一个备忘录,用以记录当前时刻它的内部状态。在需要时使用备忘录恢复内部状态。
(3) 备忘录管理者(Caretaker)角色:负责保存好备忘录,但不能对备忘录的内容进行操作或检查。
相关文章推荐
- Memento(备忘录)——对象行为模式
- 3.6 Memento(备忘录) -- 对象行为型模式
- (行为模式)MEMENTO——备忘录模式
- 备忘录——对象行为模式
- Memento 备忘录模式 ----对象行为型模式
- [导入]C#面向对象设计模式纵横谈(21):(行为型模式) Memento 备忘录模式.zip(9.73 MB)
- 行为模式:Memento(备忘录)
- 设计模式十九:memento(备忘录)——对象行为型模式
- 【设计模式】行为模式之备忘录Memento
- 设计模式-行为设计模式:备忘录模式 Memento
- 备忘录模式-对象行为模式
- Memento(备忘录)-对象行为型模式
- 行为类模式(六):备忘录(Memento)
- (行为模式)Memento——备忘录模式
- JAVA设计模式-备忘录模式-Memento-游戏备份存档
- [设计模式笔记]三. 行为型模式--20. Memento模式(备忘录)对象行为型模式(一)
- 设计模式之十七------Memento(备忘录)
- 行为设计模式---备忘录模式(Memento)
- 行为模式之Memento模式
- java 行为模式 备忘录模式