介绍
备忘录模式,其实我更愿意称呼它为存档模式,因为它主要的作用就是保存某个对象内部的你所需要的数据和状态(在不破坏类的封装特性前提下),并且可以随时还原当时的数据和状态。是不是像极了大家平时玩游戏的存档和读档机制?
代码
我们就以游戏来实现一个备忘录模式,首先,定义出需要备忘的数据。GameData记录游戏的等级和金钱,它也是游戏对象内部记录的数据。
typedef struct tagGameData
{
int level;
int money;
}GameData;
接着便定义备忘录Archive,由它保存游戏对象需要记录的数据。备忘录是不允许除Game以外的其它对象访问的,所以,它的所有接口都定义为私有的,并把Game类设置成友元,这样就只有Game对象可以访问它的接口。archive:设置存档,记录下当时Game的内部数据和状态&#x