备忘录模式
来源:互联网 发布:淘宝网店培训视频 编辑:程序博客网 时间:2024/05/29 04:59
很多软件如制图、文字编辑软件,都需要记住一些历史状态来提供撤销的功能。备忘录模式就是为这种情况而生的。简单结构如下:
备忘录模式(Memento Pattern):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。它是一种对象行为型模式,其别名为Token。 简单结构如下:
Originator:原发器,要被“备忘”的类。他可以创建一个备忘录,或恢复到一个指定备忘录的状态。
Memento:备忘录。存储某一历史状态。
Caretaker:备忘录管理者。负责存储和提供备忘录。
这里备忘录对象要做到只能被原发器查看和操作。Java里可以用在用一个包下或内部类实现。这样,原发器就可以创建备忘录交给管理者保存,通过管理者提供的历史备忘录,原发器还可以恢复某一历史状态。管理者的内部数据结构可以灵活多变,例如只是一个备忘录对象的引用,那就只能存储一个历史状态。数组就可以存放一系列线性的状态,树形结构则可以存储带分支的历史状态,等等。而且,恢复到历史状态后,还可以在此“反悔”,向较近的状态靠拢。
总结:
优点:提供恢复机制,满足一些特定的需求
缺点:资源消耗大。
适用:保存对象某时刻的全部或部分状态,以便需要时还能恢复。
1 0
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 我就是试试Java中的Socket
- Android 的Drawable
- SWTableViewCell——一个和iOS 7的系统Mail类似,使用起来简单的UITableViewCell子类
- 使用ViewDragHelper来现实自定义DrawerLayout
- 文件夹打不开的几种处理方法
- 备忘录模式
- 配置文件格式的选择
- 新装myeclipse后的一系列设置汇总
- Android中常出现的内存泄漏情况分析
- bzoj1031 字符加密Cipher
- 官方开发文档翻译-Service
- Java序列化示例
- andorid-Cursor查询后调moveToFirst解释
- 三种光照模型的渲染对比