首页 > 其他分享 >备忘录模式-20

备忘录模式-20

时间:2023-08-18 09:33:51浏览次数:26  
标签:20 模式 class 备忘录 state private public Memento

概述

备忘录模式(Memento Pattern)又称 Token,它在不破坏封装性的前提下,捕获一个对象的内部状态并在该对象之外保存,在之后可以将该对象的状态恢复至保存时的样子。

优点:提供了状态恢复机制。
缺点:资源消耗大。

class Originator {
  private String state;
  
  public Memento save() {
    return new Memento(state);
  }
  
  public void restore(Memento m) {
    this.state = m.getState();
  }
}

class Memento {
  private String state;
}

class Caretaker {
  private Memento m;
  
  public Memento get() {
    return m;
  }
  
  public void set(Memento m) {
    this.m = m;
  }
}

图示:
image

参考

[1] 刘伟, 设计模式, 2011.

标签:20,模式,class,备忘录,state,private,public,Memento
From: https://www.cnblogs.com/xdreamc/p/16470284.html

相关文章

  • GoLand 2023(GO语言集成开发工具环境)mac版
    GoLand是一个非常简单的Go语言开发工具,它使您能够在各种平台上构建Go应用程序。在过去的几年里,GoLand2023在各个领域进行了改进,并且继续发展。我们从这篇文章开始,以了解GoLand的新功能。GoLand的一个很棒的功能是允许您设置源代码,而不仅仅是编译它。这使您可以在编写代码之前......
  • 【NSSCTF逆向】【2023题目】《VidarCamera》
    题目VidarCamera解法这是一道安卓逆向题目,放在模拟器里打开看看需要输入一个序列号啥的,扔jadx里吧。通过字符串搜索定位到关键代码这里应该就是一个变种TEA,更改了加密轮次,delta。不过是TEA加密,写脚本不太难,自己的太丑了,贴个别人的点击查看代码fromCrypto.Util.numbe......
  • GitHub: remote:Support for password authentication was removed on August 13,2021
    使用gitpushoriginmaster向远程仓库推送时被告知:remote:SupportforpasswordauthenticationwasremovedonAugust13,2021.Pleaseuseapersonalaccesstokeninstead.ush的时候需要输入github的账户名和密码,而这里的大概意思就是密码验证在2021年8月13号被移除了,需要......
  • 龙南游记 2023
    暑假都没出去玩,天天呆在家里好无聊,不过有暑假社会实践,所以也算是出去玩了!8.12Sat.参加表弟升学宴,发现地点就在我去年升学宴的旁边,吃饭前和我另一个表弟绕着整个大厅散步,饶了好几十圈,属于是行为艺术了。然后被迫见了一大堆不认识的亲戚。本来你古月赛是打算今天办的,后来突然发......
  • Clion 2023.1.3最新版安装使用教程,附激活码!
    Clion是一款专门开发C以及C++所设计的跨平台的IDE。它是以inteliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力。这种强大的IDE帮助开发人员在Linux、OSX和Windows上来开发C/C++,同时它还能使用智能编辑器来提高代码质量、自动代码重构并且深度整合Cmake编译系统,从而提......
  • 【NSSCTF逆向】【2023题目】《kunmusic》
    题目kunmusic解法这题还是非常有意思的。打开有很多button,可能是需要按button的次数来得到flag把。这是一个.net的程序,需要用dnspy来反编译他反编译这个dll找到这个入口点可以看到是引入了某片数据,然后进行异或104,进行一个解密。找到这个东西、把他保存下来,然后......
  • 16 策略模式 -- go语言设计模式
    策略模式是一种行为设计模式,通过策略模式,可以在运行时修改一个对象的行为。很多资料里对它的定义是:定义一类算法族,将每个算法分别封装起来,让他们可以互相替换,此模式让算法的变化独立于使用算法的客户端。策略模式的实现代码packagemainimport"fmt"/* 练习: 商场促销有策......
  • 2023/8/17
    今天去天大报到为了省事,决定自驾去学校将近3.5h的车程,其实还好,完全可以接受(除了早起)十点到了宿舍,登记完信息后被宿管阿姨告知要先去报到但是群里却说先去宿舍,晕了中午挺热的,流了好多汗嗯,被MHK的宿舍图片误导了,实际上只是标准的四人间罢了我还以为所有人都能分到有楼梯......
  • 【愚公系列】2023年08月 WPF控件专题 Label、TextBox、PasswordBox控件介绍
    (文章目录)前言WPF控件是WindowsPresentationFoundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见......
  • 2013年12月 六级 作文翻译
    中秋节中秋节(来源:文都教育)【原文】中国人自古以来就在中秋时节庆祝丰收,这与北美地区庆祝感恩节的习俗十分相似,过中秋节的习俗与唐代早期在中国各地开始流行,中秋节在农历八月十五,是人们拜月的节日,这天夜晚皓月当空,人们合家团聚,共赏明月。2006年,中秋节被列为中国的文化遗产,200......