• 设计模式》备忘录模式


    侠盗飞车存档

    • 人物坐标
    • 目前任务关卡
    • 犯罪星级
        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!");
            }
        }
    

    参考地址

  • 相关阅读:
    redis 学习笔记
    导数据方法
    数据库常用操作
    zepto.js
    shopnc
    vue.js
    laravel
    mysql进阶学习
    Python基础------生成器表达式形式、面向过程编程、内置函数部分
    Python基础----生成器、三元表达式、列表生成式、生成器表达式
  • 原文地址:https://www.cnblogs.com/icxldd/p/15812499.html
Copyright © 2020-2023  润新知