备忘录模式:暂存数据到以对象以便随后恢复数据

1.备忘录类

namespace Data
{
    /// <summary>
    /// 备忘录模式:事实上我觉得这个东西没什么用,安照这种方式进行备份,会因为
    /// 值类型与引用类型的不同导致数据丢失。要暂存一样数据,其实方式还能更简单
    /// </summary>
    public class Memorandum
    {
        public string LastName;

        public Memorandum(string lastName)
        {
            LastName = lastName;
        }
    }

    /// <summary>
    /// 用来在内存中暂留一个备忘录信息
    /// </summary>
    public class CreateMemorandum
    {
        public Memorandum memorandum { get; set; }
    }

    /// <summary>
    /// 数据恢复与备份
    /// </summary>
    public class ExEmployees
    {
        //原始数据
        public string LastName;

        /// <summary>
        /// 保存原始数据
        /// </summary>
        /// <param name="employeesObj"></param>
        /// <returns></returns>
        public Memorandum SaveMemorandum()
        {
            return new Memorandum(LastName);
        }

        /// <summary>
        /// 恢复数据
        /// </summary>
        /// <param name="memorandumObj"></param>
        /// <returns></returns>
        public string RecoveryData(Memorandum memorandumObj)
        {
            LastName = memorandumObj.LastName;
            return LastName;
        }
    }

    public class OperateMSSQL
    {
        public Employees GetObj()
        {
            NorthwindEntities db = new NorthwindEntities();
            Employees e = db.Employees.Where(c => c.EmployeeID == 48).FirstOrDefault();
            return e;
        }
    }
}

2.调用

      static void Main(string[] args)
        {
            Employees employees = new OperateMSSQL().GetObj();

            ExEmployees exEmployees = new ExEmployees();
            //设置要备份对象的初始值
            exEmployees.LastName = employees.LastName;

            //这里将存有备份数据的类进行暂存
            CreateMemorandum createMemorandum = new CreateMemorandum();
            createMemorandum.memorandum = exEmployees.SaveMemorandum();

            //修改数据
            Console.WriteLine("修改后的名字:{0}", exEmployees.LastName = "XXXXXXX");
            //进行恢复
            string ee = exEmployees.RecoveryData(createMemorandum.memorandum);
            Console.WriteLine("恢复后的名字:{0}", ee);
            Console.ReadKey();
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值