码迷,mamicode.com
首页 > 其他好文 > 详细

备忘录模式

时间:2016-07-19 13:39:54      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:

备忘录模式的作用就是存档。

比如你在玩一个可以存档的游戏。例如红警。你玩的很好,你想存起来下次接着玩。这个就是备忘录模式,代码如何实现呢?

使用代码:

  BaseMemento BaseMemento1 = new BaseMemento();

            LOL l1 = new LOL() { level = 1, Equipment = "红药水,罗兰之剑" };
            
            BaseMemento1.Save("第一次", l1);

            LOL l2 = new LOL() { level = 6, Equipment = "电剑" };

            BaseMemento1.Save("第二次", l2);

            LOL l3 = new LOL() { level = 10, Equipment = "电剑,鞋子s" };

            BaseMemento1.Save("第三次", l3);

            BaseMemento1.Get("第一次").Show();

            BaseMemento1.Get("第二次").Show();

            BaseMemento1.Get("第三次").Show();

            Console.ReadLine();

对象:

    public class LOL
    {
        public int level { get; set; }
        public string Equipment { get; set; }

        public void Show()
        {
            Console.WriteLine("level={0},Equipment={1}", level, Equipment);
        }

    }

备忘录:

    public class BaseMemento
    {
        public bool Save(string Name, LOL lol)
        {

            SerializeHelper.JsonSerializeHelper.Serialize<LOL, Stream>(lol, new FileStream(string.Format("{0}.txt", Name), FileMode.OpenOrCreate));

            return true;
        }
        public LOL Get(string Name)
        {

            using (FileStream fsRead = new FileStream(string.Format("{0}.txt", Name), FileMode.Open))
            {
                int fsLen = (int)fsRead.Length;
                byte[] heByte = new byte[fsLen];
                int r = fsRead.Read(heByte, 0, heByte.Length);
                string myStr = System.Text.Encoding.UTF8.GetString(heByte);
                return SerializeHelper.JsonSerializeHelper.Deserialize<LOL>(myStr);
            }


        }
    }

结果:

技术分享

 

备忘录模式

标签:

原文地址:http://www.cnblogs.com/lystory/p/5684261.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!