• 设计模式之备忘录


    设计模式之---备忘录

    public class TestClien
     {
      public void Client()
      {
       GameRole L = new GameRole();
       L.InitialState();
       L.ShowState();

       Menmeto m= L.SaveState();

       L.Fight();

       L.ShowState();

       L.RecoveryState(m);

       L.ShowState();

      }
     }

     public class GameRole
     {
      private int vitality;
      private int defense;
      private int attack;
      internal void InitialState()
      {
       vitality = 100;
       defense = 100;
       attack = 100;
      }

      internal void Fight()
      {
       vitality = 0;
       defense = 0;
       attack = 0;
      }

      internal void ShowState()
      {
       Console.WriteLine(this.vitality + this.attack + this.defense);
      }

      internal Menmeto SaveState()
      {
       Menmeto m = new Menmeto();
       m.Attack = this.attack;
       m.Defense = this.defense;
       m.Vitality = this.vitality;
       return m;
      }

      internal void RecoveryState(Menmeto m)
      {
       this.vitality = m.Vitality;
       this.defense = m.Defense;
       this.attack = m.Attack;
      }
     }

     public class Menmeto
     {
      private int vitality;

      public int Vitality
      {
       get { return vitality; }
       set { vitality = value; }
      }
      private int defense;

      public int Defense
      {
       get { return defense; }
       set { defense = value; }
      }
      private int attack;

      public int Attack
      {
       get { return attack; }
       set { attack = value; }
      }
     }

    写完备忘录模式的代码,发现把聚合menmeto的manager类完全省略了,这个模式也能实现。

    它也能解决维护或者记录历史的问题,使得玩家能够还原到前一状态。

  • 相关阅读:
    神经网络之非线性分类器——神经网络
    卷积神经网络之迁移学习
    卷积神经网络之卷积的结构和参数的多少
    卷积神经网络之卷积的物理意义
    神经网络的后续改进
    图像的矩 图像的轮廓面积和长度
    包围轮廓的矩形边界 opencv
    Linux中的环境变量配置文件及其作用
    Linux中的数值运算
    Linux中接收键盘输入
  • 原文地址:https://www.cnblogs.com/363546828/p/2241620.html
Copyright © 2020-2023  润新知