备忘录模式

备忘录模式用于保存对象的内部状态,以供后续恢复。本文通过游戏开发的例子,阐述如何使用备忘录模式创建存档和读档机制。GameData类存储游戏数据,Archive作为备忘录保存并恢复Game对象的状态。备忘录模式保持对象封装性,简化原发器,广泛应用于游戏存档、文档保存等场景,但也可能因大量数据备份导致资源消耗增加。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍

    备忘录模式,其实我更愿意称呼它为存档模式,因为它主要的作用就是保存某个对象内部的你所需要的数据和状态(在不破坏类的封装特性前提下),并且可以随时还原当时的数据和状态。是不是像极了大家平时玩游戏的存档和读档机制?

代码

    我们就以游戏来实现一个备忘录模式,首先,定义出需要备忘的数据。GameData记录游戏的等级和金钱,它也是游戏对象内部记录的数据。

typedef struct tagGameData
{
	int level;
	int money;
}GameData;

    接着便定义备忘录Archive,由它保存游戏对象需要记录的数据。备忘录是不允许除Game以外的其它对象访问的,所以,它的所有接口都定义为私有的,并把Game类设置成友元,这样就只有Game对象可以访问它的接口。archive:设置存档,记录下当时Game的内部数据和状态&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Z小偉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值