备忘录模式

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

应用场景

1、需要保存历史快照的场景。

2、希望在对象之外保存状态,且除了自己其他类对象无法访问状态保存具体内容。

优点

1、提供了一种可以恢复状态的机制。当用户需要时能够比较方便地将数据恢复到某个历史的状态。

2、实现了内部状态的封装。除了创建它的发起人之外,其他对象都不能够访问这些状态信息。

3、发起人不需要管理和保存其内部状态的各个备份,所有状态信息都保存在备忘录中,并由管理者进行管理,这符合单一职责原则。

缺点

1、资源消耗大。如果要保存的内部状态信息过多或者特别频繁,将会占用比较大的内存资源。

2、如果需要保存的状态过多时,每一次保存都会消耗很多内存。

源码应用

1)在 JDK 中 java.util.Date 通过自身内部的一个 Long 值来实现备忘录模式。

2)Spring的工作流(spring-webflow)中StateManageableMessageContext类,可用于点击回退到上一步。

相关推荐
ttod_qzstudio2 天前
【软考设计模式】备忘录模式:对象状态的捕获与无损恢复精讲
设计模式·备忘录模式
折哥的程序人生 · 物流技术专研6 天前
Java 23 种设计模式:从踩坑到精通 | 备忘录模式 —— 快照与撤销,给对象装一个“后悔药”
java·设计模式·备忘录模式·行为型模式·java设计模式·从踩坑到精通·撤销重做
代号隐神56 天前
GoF设计模式——备忘录模式
java·设计模式·备忘录模式
雪度娃娃2 个月前
行为型设计模式——备忘录模式
服务器·c++·设计模式·备忘录模式
多加点辣也没关系2 个月前
设计模式-备忘录模式
设计模式·备忘录模式
ximu_polaris2 个月前
设计模式(C++)-行为型模式-备忘录模式
c++·设计模式·备忘录模式
砍光二叉树3 个月前
【设计模式】行为型-备忘录模式
设计模式·备忘录模式
Yu_Lijing4 个月前
基于C++的《Head First设计模式》笔记——备忘录模式
c++·笔记·设计模式·备忘录模式
青春易逝丶4 个月前
备忘录模式
备忘录模式
郝学胜-神的一滴4 个月前
C++备忘录模式:优雅实现对象状态保存与恢复
开发语言·c++·程序人生·备忘录模式