关键词不能为空

如何实现回滚(回滚怎么操作)

作者:admin
来源:http://www.sdzsb8.cn/zsxx/26245.html
日期:2022-07-19 11:06
评论:0
阅读 174

如何实现回滚?回滚怎么操作?今天我们介绍的设计模式叫做命令模式,在这个模式下,我们可以实现do和undo的解耦,让使用方不用关心内部的实现细节。其实也就是两个功能,一个是发布另外一个是回滚。这两个操作是互相可逆的,对于它的使用者来说,是不会关心它的内部是如何实现的,我们只需要在页面上按按钮就好了。发布之后发现问题,再点击回滚,系统再自动恢复到发布之前的状态。

如何实现回滚(回滚怎么操作)

大家好,欢迎来到设计模式专题。我们的主要目的是介绍一些有趣的设计模式。

我们今天介绍的设计模式叫做命令模式。在这个模式中,我们可以将do和undo解耦,这样用户就不必关心内部的实现细节。

命令模式

我们在日常生活中经常使用这种模式。举个很简单的例子,比如我们发布代码。发布后发现不小心贴了个bug。这时候我们该怎么办?很简单,就是把在线代码回滚到这个版本之前的代码。这样就消除了我们发布带来的变化,进而避免了bug的产生。

那么,一个发布系统需要做什么呢?其实有两个功能,一个是发布,一个是回滚。这两个操作是可逆的。对于它的用户来说,他们不会关心它在内部是如何实现的。我们只需要按下页面上的按钮。

我们来回顾一下这个过程。我们可以通过点击发布在线发布最新的代码。发布后,如果发现问题,点击回滚,系统会自动恢复到发布前的状态。发布和回滚是相互可逆的。当我们消除bug后,再次点击发布,我们就可以再次发布最新的代码了。

命令模式就是它所做的,它是do和undo的封装。让我们看一个非常简单的例子,重命名一个文件。比如我们要给系统里的文件重新命名,从A.txt改成b.txt,这个功能很简单。系统给我们提供了一个现成的函数,叫做os.rename()。我们只需要将文件A和B的地址传入其中。

发现名字改错了想回滚怎么办?会发现我们改之前的名字已经忘记了,不知道怎么回滚。此时可以使用命令模式。让我们看看代码:

在execute方法中,我们将文件从src改为dest,如果要回滚,它会再次调用rename。将文件名从dest回滚到src。这样,作为用户,你完全不用了解api内部的实现逻辑,否则为了防止纠错,你需要做大量的适配。

菜单项

有了命令模式,我们可以在外面封装一层进行ui交互,常见的UI交互模式就是按钮。点击某个按钮后,会出现一个按下的标记,实现什么功能。再次按下标记消失,该功能将被关闭。

我随便找了个例子,比如下面菜单里的显示小地图和显示面包屑。这些都是这样的功能。点按缩略图以出现,然后点按缩略图以消失。

如果你写了一个UI页面,一般来说,我们会先定义一个菜单项类,它代表菜单中所有项的基类。不同的选项表示不同的项目。进一步分析后会发现,有些项的关闭机制需要双击,有些项则不需要。例如,上面的Run和Output项都执行一次。

当然,我们可以直接使用上面介绍的命令对象作为item,但是这样不利于整个菜单的统一,所以我们也会在外面多一层面包。例如,所有MenuItem的父类应该如下所示:

有了这个基类,我们就可以实现一个以command为对象作为类成员变量的rollback类,然后在其中实现unpress方法:

这样,我们的UI就与命令解耦了。如果我们想要实现可以回滚的不同功能,我们只需要实现不同的命令来创建实例。对整个UI的使用没有影响,UI组件使用的所有类都是统一的。可能在Python这种弱类型语言中不明显,因为我们的一个列表说是基类菜单的列表,但是可以加载任何东西。但是如果是强类型语言,那么这种抽象和封装是非常必要的。

今天的文章到此为止。真心祝大家天天有事。如果你还喜欢今天的内容,请来个三重支持~(喜欢,关注,转发)

-结束-

本文源于微信官方账号:TechFlow,求关注。


本文来自网络,不代表「专升本要什么条件_专升本要几年_成人高考专升本_山东专升本信息网」立场,转载请注明出处:http://www.sdzsb8.cn/zsxx/26245.html

如何实现回滚(回滚怎么操作)的相关文章

  • 国家电大开放网如何登录(电大官网登录入口)

    国家电大开放网如何登录(电大官网登录入口):1、国家开放大学学习网登录入口地址:国家开放大学学习网国家开放大学是在中央广播电视大学和地方广播电视大学的基础上组建,以现代信息技术为支撑,办学网络立体覆盖全国城乡

    问答
  • 黄河流域水土流失强度实现“双下降”生态环境持续向好

    黄河流域水土流失强度实现“双下降”生态环境持续向好:新华社郑州1月30日电(记者 张兴军)记者30日从水利部黄河水利委员会获悉,根据最新发布的《黄河流域水土保持公报(2020年)》,经过多年治理,黄河流域水土流失面积和强度实现“双下降

    百科
  • 自考成绩如何查询?一般什么时候可以查询?(自考成绩在哪里查)

    自考成绩如何查询?一般什么时候可以查询?(自考成绩在哪里查):1、查询自考成绩的渠道有三种,一种就是携带好相关证件和资料,去当地自考中心直接进行查询;第二种就是可以通过所在省的自考网上进行查询;第三种就是需要能够通过书籍短信查

    热讯
  • 新手小白如何开始学烘焙?

    新手小白如何开始学烘焙?:如今越来越多的人选择学习烘焙,他们学习的出发点各有不同,有的是为了自己的兴趣爱好,有的是为了想从事这项工作后续就业或开店创业,但大家最终的目的都是一样的,希望自己

    百科
  • 广州中考网官网如何退费(广州市中考网官网)

    广州中考网官网如何退费(广州市中考网官网):1、具体操作方式还得询问教育部门的工作人员。2、根据《广州市发展改革委关于高中阶段学校招生考试科目收费问题的复函》(穗发改函 [2020]272号)规定,中考按每生每科10元进行收费,

    问答
  • 大专生如何考研(专科生怎么报考研究生)

    大专生如何考研(专科生怎么报考研究生):大家好,今天来为大家关于大专生如何考研(专科生怎么报考研究生)很多人还不知道,现在让我们一起来看看吧 1.第一种是大专毕业满2年可按本科同等学力身份考普研(即全日制研究生

    问答
  • 申请留学,如何写更吸引人的文书?

    申请留学,如何写更吸引人的文书?:来源:人民网-人民日报海外版图片来源:千库网又到了留学申请的旺季,对学子而言,想要成功申请到理想的学校,出色的标准化成绩、文书和面试表现缺一不可。其中,标准化成绩

    百科
  • 如何查询江苏高二学业水平考试(江苏招生考试官网)

    如何查询江苏高二学业水平考试(江苏招生考试官网):1、在“江苏省教育考试院”官网和“江苏招生考试服务号”公众号查询。2、1、查询方法一:打开“江苏省教育考试院”官网,然后点击进入首页,点击首页页面中页面上方的“高中学

    热讯
  • 如何在电脑上登录e网通(升学网官网登录平台)

    如何在电脑上登录e网通(升学网官网登录平台):1、升学e网通是一个在线教育平台,主要面向高中生。2、使用前需要付费开通账号,然后每次用你的账号登录就可以了,里面有学习视频、习题、真题、心理辅导、志愿填报等多个板块

    问答
网站公告