设计模式-》备忘录模式

侠盗飞车存档

  • 人物坐标
  • 目前任务关卡
  • 犯罪星级
public class GameData { public double Money { get; set; } public int TaskLevel { get; set; } public int X { get; set; } public int Y { get; set; } public GameData(double money, int taskLevel, int x, int y, int fanZuiLevel) { Money = money; TaskLevel = taskLevel; X = x; Y = y; FanZuiLevel = fanZuiLevel; } public int FanZuiLevel { get; set; } } public class GameWord { public GameWord(GameData gameData) { GameData = gameData; } public GameMemento SaveState() { return new GameMemento(GameData); } public void ShowDisplay() { Console.WriteLine($"坐标:{GameData.X}:{GameData.Y},钱:{GameData.Money}"); } public void Die() { this.GameData = null; } public void RecoveryState(GameMemento gameData) { GameData = gameData.GameData; } public GameData GameData { get; set; } } public class GameMemento { public GameMemento(GameData gameData) { GameData = gameData; } public GameData GameData { get; set; } } public class GameCaretaker { public GameMemento GameMemento { get; set; } public GameMemento GetGameMemento => GameMemento; public void SetGameMemento(GameMemento gameMemento) { GameMemento = gameMemento; } } class Program { static void Main(string[] args) { GameData gameData = new GameData(100, 1, 100, 20, 2); GameWord gameWord = new GameWord(gameData); gameWord.ShowDisplay(); GameCaretaker gameCaretaker = new GameCaretaker(); gameCaretaker.SetGameMemento(gameWord.SaveState()); gameWord.Die(); gameWord.RecoveryState(gameCaretaker.GetGameMemento); gameWord.ShowDisplay(); Console.WriteLine("Hello World!"); } }

参考地址


__EOF__

本文作者icxldd
本文链接https://www.cnblogs.com/icxldd/p/15812499.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   icxl  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示