zoukankan      html  css  js  c++  java
  • 设计模式之备忘录

    设计模式之---备忘录

    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类完全省略了,这个模式也能实现。

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

  • 相关阅读:
    Python异常处理详解
    Python with/as和contextlib上下文管理使用说明
    Python面向对象基础:编码细节和注意事项
    搞懂Python的类和对象名称空间
    Python丢弃返回值
    Python面向对象基础:设置对象属性
    python的dir()和__dict__属性的区别
    Go Web:RESTful web service示例
    Go处理json数据
    json数据格式说明
  • 原文地址:https://www.cnblogs.com/363546828/p/2241620.html
Copyright © 2011-2022 走看看