设计模式之备忘录模式
1. 定义
在不暴露对象实现细节的情况下保存和恢复对象之前的状态
2. 口语化表述
在一些单机游戏中,往往存在“存档”这个概念
所谓存档,就是保存当前的游戏状态,备份游戏档案
可以继续玩这个游戏,如果发生了什么问题,想要回退游戏状态,就可以重新加载档案
这就是备忘录模式,这个模式主要解决的就是状态“备份”与“回退”问题
(下面的表述会沿用这个场景)
3. 源码示例
在Android中,备忘录模式通常用于保存和恢复Activity的状态
Activity是一个非常重要的组件,它通常包含用户输入、UI状态和其他重要数据
当Activity被系统销毁并重新创建时,它的状态会丢失,这会对用户体验产生负面影响
为了解决这个问题,Android提供了一种保存Activity状态的机制——保存实例状态(SaveInstanceState)
保存实例状态允许在Activity被销毁时保存其状态,以便在Activity重新创建时恢复状态
它基于备忘录模式实现,系统会自动为Activity创建一个Bundle对象,并在Activity被销毁时将该Bundle对象保存起来
当Activity重新创建时,系统会将保存的Bundle对象传递给Activity,并允许Activity从中恢复其状态
4. 总结
4.1 设计优缺点
-
在不破坏对象封装情况的前提下创建对象状态快照
-
消耗大量内存
4.2 适用场景
- 需要创建对象状态快照来恢复其之前的状态时
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律