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

九网互联怎么建设网站一键生成个人网站

九网互联怎么建设网站,一键生成个人网站,建设银行防钓鱼网站,小程序是什么东西📝 备忘录模式:快速恢复原始数据 🚀 🧐 问题描述 在开发中,我们经常会遇到需要恢复对象状态的情况。传统的解决方案通常是为每个对象创建一个保存状态的对象,但这种方法不仅保存不方便,还会增…

📝 备忘录模式:快速恢复原始数据 🚀

🧐 问题描述

在开发中,我们经常会遇到需要恢复对象状态的情况。传统的解决方案通常是为每个对象创建一个保存状态的对象,但这种方法不仅保存不方便,还会增加开销和对象的数量。此外,这种方式还会暴露对象的内部细节,导致代码的可维护性降低。

🎯 备忘录模式简介

备忘录模式 是一种行为设计模式,它允许在不破坏封装性的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态。这样,我们可以在需要时方便地恢复对象的状态。

主要角色

  • Originator(发起人):需要保存状态的对象。
  • Memento(备忘录):负责保存和记录 Originator 的内部状态。
  • CareTaker(守护者):负责保存多个备忘录对象,通常使用集合进行管理。

在这里插入图片描述

💻 代码示例

1. 基本备忘录模式实现

Memento 类
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class Memento {private String state;
}
Originator 类
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class Originator {private String state;// 保存状态到备忘录public Memento saveStateMemento() {return new Memento(state);}// 从备忘录恢复状态public void getStateFromMemento(Memento mem) {state = mem.getState();}
}
CareTaker 类
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class CareTaker {private List<Memento> mementos = new ArrayList<>();public void add(Memento mem) {mementos.add(mem);}// 获取指定索引的备忘录对象public Memento get(int index) {return mementos.get(index);}
}
Client 类
public class Client {public static void main(String[] args) {Originator ori = new Originator();CareTaker careTaker = new CareTaker();ori.setState("状态1");careTaker.add(ori.saveStateMemento());ori.setState("状态2");careTaker.add(ori.saveStateMemento());ori.setState("状态3");careTaker.add(ori.saveStateMemento());System.out.println("当前状态:" + ori.getState());// 恢复到状态1ori.getStateFromMemento(careTaker.get(1));System.out.println("当前状态:" + ori.getState());}
}

2. 游戏角色状态恢复示例

在这里插入图片描述

Memento 类
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class Memento {private int vit; // 攻击力private int def; // 防御力
}
GameRole 类
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class GameRole {private int vit;private int def;// 创建备忘录public Memento createMemento() {return new Memento(vit, def);}// 从备忘录恢复状态public void recoverGameRoleMemento(Memento memento) {this.vit = memento.getVit();this.def = memento.getDef();}// 显示当前状态public void display() {System.out.println("当前游戏角色的属性:攻击力-" + this.vit + " 防御力-" + this.def);}
}
Client 类
public class Client {public static void main(String[] args) {GameRole gameRole = new GameRole(100, 100);System.out.println("执行之前");gameRole.display();CareTaker careTaker = new CareTaker();careTaker.setMemento(gameRole.createMemento());System.out.println("执行之后:");gameRole.setDef(30);gameRole.setVit(30);gameRole.display();System.out.println("进行恢复");gameRole.recoverGameRoleMemento(careTaker.getMemento());gameRole.display();}
}
CareTaker 类
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class CareTaker {private Memento memento;// 如果需要保存多个状态// private ArrayList<Memento> mementos;// 如果需要保存多个游戏角色的状态// private HashMap<String, ArrayList<Memento>> rolesMementos;
}

运行结果

在这里插入图片描述

📌 注意事项

  • 恢复机制:备忘录模式提供了一种恢复对象状态的机制,适用于需要撤销操作或回滚的场景。
  • 封装性:备忘录模式对信息进行了封装,外部无需了解对象的内部细节。
  • 资源占用:如果类的成员变量过多,备忘录模式可能会占用较多的资源,因此在使用时需要注意。
  • 适用场景:备忘录模式适用于需要撤销操作(如 Ctrl+Z)、后悔药、数据库事务处理、浏览器后退等场景。

🎉 总结

备忘录模式是一种非常实用的设计模式,特别适合需要频繁保存和恢复对象状态的场景。通过合理使用备忘录模式,我们可以有效提升代码的可维护性和灵活性,尤其是在前端开发中,能够帮助我们快速恢复原始数据,优化用户体验。

希望这篇博客笔记对你有所帮助!🚀

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

相关文章:

  • 拉萨网站建设熊掌号seo文章是什么
  • 广东网站建设微信商城开发在线seo诊断
  • 手机建网站怎么弄如何解决网站只收录首页的一些办法
  • 基于web的旅游网站设计疫情最新政策最新消息
  • 什么网站做水果蔬菜批发如何做平台推广赚钱
  • 科技公司网站建设营销推广公司
  • 做农产品的b2c网站百度小说风云榜排行榜官网
  • 浙江省院士专家工作站建设网站sem竞价培训
  • 知名网站制作服务googleplaystore
  • 校园网站建设申请网站怎么推广
  • 基于工作过程的商务网站建设:网页制作企业培训员工培训平台
  • 前端网页培训班seo规则
  • 做网站前期构架图公众号引流推广平台
  • 技术支持 昆明网站建设sem是什么职业岗位
  • 河南省南阳市建设局网站网上代写文章一般多少钱
  • 分销系统网站59软文网
  • 个人做网站开发百度推广下载安装
  • 青岛网站建设公司外包软件培训机构排行榜
  • 北京市住房建设投资中心网站seo实战培训费用
  • 深圳龙岗区平湖街道官网排名优化方案
  • 哪个网站做浏览器主页成都新站软件快速排名
  • 南通网站排名优化培训课程设计
  • 厦门做网站排名链接点击量软件
  • 成都高端网站建设怎么免费推广自己网站
  • 做设计用图片的网站前端开发培训机构推荐
  • 深圳入户哈尔滨seo
  • 网站托管公司哪家好b站推广网站2024
  • 帮别人做买家秀的网站什么建站程序最利于seo
  • 做h5场景的网站百度地图优化排名方法
  • 政府网站用的什么cms系统外链群发软件