备忘录模式之备份是一种态度

简介:         有些事,错误了就是永远;有些人,一转身就是一辈子,不要轻易忽略任何爱,哪怕只是前天母亲节一通平凡的电话;时光走着她的路,路过青春的脚步,每个人或许都有遗憾的时候,总是要等到睡觉前,才知道功课只做了一点点 总是要等到考试后,才知道该念的书都没有念,为了让自己的人生少些许遗憾,需要我们做好时间管理,提前做好准备,认真思量之后再做打算。

        有些事,错误了就是永远;有些人,一转身就是一辈子,不要轻易忽略任何爱,哪怕只是前天母亲节一通平凡的电话;时光走着她的路,路过青春的脚步,每个人或许都有遗憾的时候,总是要等到睡觉前,才知道功课只做了一点点
总是要等到考试后,才知道该念的书都没有念,为了让自己的人生少些许遗憾,需要我们做好时间管理,提前做好准备,认真思量之后再做打算。

        但是在神奇的编程世界中,有一种魔法,可以让你避免很多遗憾,强大的word中具有“Ctrl+Z”的功能,PS等一些软件中,也具有此类功能,基本上所有的带编辑功能的软件都具有撤销这个功能,撤销功能给了我们恢复先前状态的机会。拿我们电脑系统而言,可以进行备份,把系统打成压缩包就是备份,为了在系统出现崩溃情况或中毒时还原成以前的样子!今天我们的模式就从备份开始说起,备忘录模式----在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到保存的状态。一如她自己的名字,就是为了备忘,首先我们来看一下备忘录模式的结构图:

         

        刚开始接触的电脑的时候,首先需要掌握的就是学会装系统,装来装去,免不了有点儿麻烦,这个时候,有了新的需求,就有了新的解决方案,那就是对我们先前的电脑进行备份,有句话这样说,备份是一种态度, 以电脑备份为例,看看备忘录模式如何在实际中运用:

          发起人(Originator)类

          

public class WindowsSystem
    {
        private string status;
                                          //需要保存的属性
        public string Status
        {
            get
            {
                return status;
            }
            set
            {
                status = value;
            }
        }


        public Memento createOtherSystem()             //创建备忘录
        {
            return new Memento(status);
        }
        public void recoverSystem(Memento m)           //恢复备忘录
        {
            this.status = m.Status;
        }
    }
           备忘录(Memento)类

              

public class Memento
    {
        private string status;
                         
        public string Status
        {
            get
            {
                return status;
            }
            set
            {
                Console.WriteLine("系统处于:" + this.status);
                status = value;
            }
        }

        public Memento(string status)
        {
            this.status = status;
        }
    }


           管理者(Caretaker)类

           

public class UserComputer
    {
        private Memento memento;

        public Memento recoverMemento()
        {
            // 恢复系统  
            return this.memento;
        }

        public void createMemento(Memento memento)
        {
            // 保存系统  
            this.memento = memento;
        }
    }  
         客户端程序

         

 class Program
    {
        static void Main(string[] args)
        {
            WindowsSystem Win8 = new WindowsSystem(); // Win8系统  
            UserComputer user = new UserComputer(); 
            Win8.Status = "良好的状态"; // Win8处于良的运行状态  
            user.createMemento(Win8.createOtherSystem()); // 用户进行备份,Win8系统产生备份文件  
            Win8.Status = "状态较差"; // Win8处于较差的状态
            Win8.recoverSystem(user.recoverMemento()); // 用户发出命令,进行备份还原 
            Console.WriteLine("当前系统处于" + Win8.Status);
            Console.ReadKey();  
        }
    }
        在软件开发中,有时需要保存一个对象的状态,以便于允许用户取消相关操作或者从以往的状态中恢复过来。比如一个文档版本管理系统,可以根据需要将指定文档恢复到之前保存过的任意一个状态。这时就可以通过备忘录模式来实现。备忘录模式在我们生活中的应用还有很多,比如象棋中的悔棋功能,游戏中的存档功能,都是备忘录在实际生活中的应用。

        用好备忘录,让我们的人生中少些许遗憾和后悔,多一份精彩,多一份期待......

目录
相关文章
|
4月前
|
安全 数据安全/隐私保护 Windows
数据安全的守护者:备份工具和恢复方法详解
数据安全的守护者:备份工具和恢复方法详解
119 6
|
8月前
|
存储 设计模式 安全
探索设计模式的魅力:备忘录模式揭秘-实现时光回溯、一键还原、后悔药、历史的守护者和穿越时空隧道
备忘录模式是一种行为设计模式,允许在不破坏对象封装性的情况下保存和恢复对象的内部状态。该模式通过创建备忘录对象来存储发起人的状态信息,发起人可根据需要创建和恢复备忘录。管理者则负责保存和管理备忘录,但无法访问其内容。备忘录模式简化了状态管理,支持撤销操作和历史记录功能,提高了系统的灵活性和可用性。在实际应用中,备忘录模式常用于文本编辑器、游戏和数据库事务处理等场景,确保对象状态的安全恢复和有效管理。通过备忘录模式,开发人员可以更好地控制对象状态的变化,提升软件系统的健壮性和用户体验。
172 1
探索设计模式的魅力:备忘录模式揭秘-实现时光回溯、一键还原、后悔药、历史的守护者和穿越时空隧道
|
8月前
|
存储 设计模式 uml
C++备忘录模式实践:轻松实现撤销与恢复功能
C++备忘录模式实践:轻松实现撤销与恢复功能
138 0
|
8月前
|
设计模式 存储
二十三种设计模式全面解析-深入探究备忘录模式:保留过去,预见未来
二十三种设计模式全面解析-深入探究备忘录模式:保留过去,预见未来
|
存储 设计模式 Go
备忘录模式——软件的“后悔药”
备忘录模式(Memento Pattern)是一种行为型设计模式
65 0
|
设计模式 存储 Java
理解Java设计模式中的备忘录模式:实现数据的快照和恢复
理解Java设计模式中的备忘录模式:实现数据的快照和恢复
备忘录模式——存档读档
备忘录模式——存档读档
|
安全
IT领导者当心 这7种情况会毁掉你的声誉
IT领导者当心 这7种情况会毁掉你的声誉
备忘录模式实例象棋中“悔棋”操作
备忘录模式实例象棋中“悔棋”操作
126 0
备忘录模式实例象棋中“悔棋”操作
|
运维 分布式计算 Hadoop
误删文件的经验之谈
一、引言   曾经在运维hadoop集群的时候,出过这么一回事:当时集群因为需要维修机器所以进行停机维护,但是当启动集群的时候发现集群怎么也起不了,在没有问别的同事的情况下,自己百度了一下问题,发现format操作能解决问题,当时的我对于format是一知半解,后来执行format以后集群是起来了,但是数据没有了。追悔莫及已经没有用了,只能对自己说吃一见长一智;这明显就是误操作导致数据被删。今天就来聊一下怎么能防止误删文件! 二、防止误删数据技巧:   1、修改或删除数据前请务必备份,最好有异机备份,修改配置等先提交版本管理系统在发布到线上环境。   2、可以使用mv命令替代rm命令,
142 0