当前位置: 首页 > wzjs >正文

无锡做智能网站百度导航下载2022最新版官网

无锡做智能网站,百度导航下载2022最新版官网,八爪鱼采集器 wordpress,九龙坡区建设二校有网站吗在日常开发中,我们经常会遇到这样的场景:需要保存对象的某个历史状态,以便将来恢复。这种需求最常见的例子就是“撤销操作”。在这种情况下,备忘录模式(Memento Pattern)就派上了用场。 目录 1. 概念 2. 代码实现 3. 总结 1. …

        在日常开发中,我们经常会遇到这样的场景:需要保存对象的某个历史状态,以便将来恢复。这种需求最常见的例子就是“撤销操作”。在这种情况下,备忘录模式(Memento Pattern)就派上了用场。

目录

1. 概念

2. 代码实现

3. 总结


1. 概念

        备忘录模式属于行为型设计模式。它的核心思想是:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将对象恢复到原先保存的状态。

        通俗点讲,备忘录模式就像是在玩游戏时存档:你保存了一个状态,之后可以随时“读档”回来。

备忘录模式包含三个关键角色:

1. Originator(发起人):需要保存状态的对象

2. Memento(备忘录):用来存储对象的内部状态

3. Caretaker(管理者):负责保存备忘录,但不会操作或检查其内容

2. 代码实现

        这里我将采用一个编辑/撤销文本的案例来实现备忘录模式。

首先我准备一个Editor类

public class Editor {private String text;public void setText(String text) {this.text = text;}public String getText() {return text;}// 保存当前状态public Memento save() {return new Memento(text);}// 恢复状态public void restore(Memento memento) {this.text = memento.getText();}// 内部备忘录类public static class Memento {private final String text;private Memento(String text) {this.text = text;}private String getText() {return text;}}
}

这里我定义了一个静态内部类即Memento类,主要作为一个备忘录,也是被记录的状态类。

接下来再定义管理者,负责管理备忘录:

import java.util.Stack;public class History {private final Stack<Editor.Memento> history = new Stack<>();public void push(Editor.Memento memento) {history.push(memento);}public Editor.Memento pop() {if (!history.isEmpty()) {return history.pop();}return null;}
}

这里我们这个管理类也基于栈来实现,其后进先出的特性可以很好的实现我们需要的写入撤销的业务逻辑。

最后完成一个主测试类:

public class MementoDemo {public static void main(String[] args) {Editor editor = new Editor();History history = new History();editor.setText("Version 1");history.push(editor.save());editor.setText("Version 2");history.push(editor.save());editor.setText("Version 3");System.out.println("当前内容: " + editor.getText()); // 输出 Version 3editor.restore(history.pop());System.out.println("撤销后: " + editor.getText()); // 输出 Version 2editor.restore(history.pop());System.out.println("再次撤销: " + editor.getText()); // 输出 Version 1}
}

3. 总结

        备忘录模式的封装良好,但其实在实际工作中用到的地方并没有很多,绝大多数的游戏服务器实现存档的功能类似备忘录模式,但是对于后端服务器业务开发过程中,此设计模式的实践并不是很多,大家可以作为了解即可。

http://www.dtcms.com/wzjs/50869.html

相关文章:

  • 帮你做海报网站网页生成
  • 沈阳的网站制作公司哪家好流量平台有哪些
  • wordpress自动跳转https性价比高seo排名优化的
  • 做网站最适合用多大的图片徐州seo排名公司
  • it外包 北京搜索排名优化
  • wordpress制作模板教程百度seo快速见效方法
  • 玉环网站建设百度关键词搜索量排名
  • 建立网站需要多久营销推广方式
  • 网站建设网站服务国外市场网站推广公司
  • 企业网站cms 系统温州网站快速排名
  • 适合学生做网页练习的网站百度认证平台官网
  • 北京师范大学学风建设专题网站直通车关键词优化
  • 永久免费云电脑关键词优化分析工具
  • 淘宝做首页热点的什么网站临沂seo优化
  • 湘潭做网站价格问下磐石网络关键词挖掘站长
  • 山东高阳建设公司网站爱站工具下载
  • seo 网站换程序百度竞价排名是哪种方式
  • 沈阳模板建站系统seo建站还有市场吗
  • 青岛哪家做网站好网站维护工作内容
  • 有哪些免费的ppt模板下载网站谷歌推广代理商
  • 建设局网站建筑节能审查表企业seo推广
  • 企业型商务网站制作做法推广赚钱的平台
  • 怎样做医院网站凡科建站app
  • 学电子商务后悔死了潜江seo
  • 济宁做网站的企业优化大师人工服务电话
  • 做网站英文编辑有前途网站策划书模板
  • 如何用微信做网站关键词优化公司哪家推广
  • 网站推广和宣传的方法有创意的网络营销案例
  • 新建一个网站需要多少钱百度app官方下载
  • 音酷网站建设微信朋友圈广告