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

济南网站建设(选聚搜网络)建设厅公积金中心网站

济南网站建设(选聚搜网络),建设厅公积金中心网站,诸城哪有做公司网站的,网站建设学那些课程文章目录 引言备忘录模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用备忘录示例代码地址 引言 想象一下#xff0c;你正在编辑一篇重要的文档#xff0c;突然你意识到最近的一些更改实际上破坏了文档的结构。幸运的是#xff0c;你的文本编辑器允许你撤… 文章目录 引言备忘录模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用备忘录示例代码地址 引言 想象一下你正在编辑一篇重要的文档突然你意识到最近的一些更改实际上破坏了文档的结构。幸运的是你的文本编辑器允许你撤销最近的操作回到之前的状态。这种能力就像有一个时间机器可以回到过去撤销错误的决策。在软件开发中我们经常需要这种“撤销”功能备忘录模式为此提供了一种优雅的解决方案。 备忘录模式简介 定义与用途 备忘录模式Memento Pattern是一种行为型设计模式它允许保存一个对象的某个状态以便在未来某个时刻恢复。这个模式在用户需要撤销或恢复操作时特别有用它通过引入备忘录对象来捕获和存储对象的内部状态而不破坏其封装性。 实现方式 实现备忘录模式通常涉及以下几个关键组件 原发器Originator需要保存状态以便后续恢复的对象。备忘录Memento存储原发器对象的内部状态。看护者Caretaker负责保存备忘录但不修改或检查其内容。 使用场景 备忘录模式适用于以下场景 当需要保存和恢复对象的历史状态时。当直接获取对象的状态会暴露其实现细节并破坏对象封装性时。 例如 文本编辑器的撤销功能用户可以撤销最近的编辑操作并恢复到之前的文本状态。游戏保存和加载在游戏中保存当前进度玩家可以在以后加载保存点继续游戏。软件的快照功能软件可以定期保存当前状态以便在出现问题时恢复到工作状态 优势与劣势 优势 提供了一种恢复状态的灵活方式而无需暴露对象的内部结构。可以简化原发器的职责因为状态的保存和恢复由备忘录承担。 劣势 如果用户不断创建备忘录可能会占用大量内存。管理备忘录的成本可能会很高尤其是如果需要支持多次撤销时。 在Spring框架中的应用 在Spring框架中虽然备忘录模式不像其他设计模式那样直接显现但它的核心概念——即保存和恢复对象状态——在某些功能中得到了体现。以下是Spring框架中体现备忘录模式概念的一些方面 1. Spring Web Flow 在Spring Web Flow中备忘录模式的概念被用于管理Web应用中的页面流。在用户导航过程中每个页面的状态都可以被保存用户可以回退到之前的状态。这类似于备忘录模式中的保存和恢复状态的概念。2. 事务管理 Spring的声明式事务管理允许你在开始一个事务时保存数据库的某种状态并在事务完成时恢复这种状态。如果事务失败Spring可以回滚到事务开始之前的状态这与备忘录模式中保存对象状态以便恢复的概念相符。3. Spring Security的认证和授权 在Spring Security中用户的认证状态如安全上下文在用户会话中保存和恢复。虽然这不是传统意义上的备忘录模式但它体现了备忘录模式的核心概念——保存和恢复对象的状态。4. 配置和恢复Bean状态 Spring的BeanFactory和ApplicationContext容器允许定义、保存和恢复Bean的配置状态。这些状态信息如Bean的属性和依赖关系可以在容器启动时被加载并在需要时恢复这与备忘录模式的基本原理类似。尽管这些应用可能不是备忘录模式的典型示例但它们都采用了该模式的核心思想——即保存和恢复状态。这些机制在Spring框架中至关重要有助于实现高效和可靠的状态管理。 备忘录示例 步骤 1创建备忘录类 public class Memento {private String state;public Memento(String state){this.state state;}public String getState(){return state;} }Memento 类包含了对象的状态。它有一个方法 getState() 用于获取保存的状态。 步骤 2创建原发器类 public class Originator {private String state;public void setState(String state){this.state state;}public String getState(){return state;}public Memento saveStateToMemento(){return new Memento(state);}public void getStateFromMemento(Memento memento){state memento.getState();} }Originator 类是要保存状态的对象。它创建备忘录来保存自己的状态并从备忘录中恢复状态。 步骤 3创建看护者类 import java.util.ArrayList; import java.util.List;public class CareTaker {private ListMemento mementoList new ArrayListMemento();public void add(Memento state){mementoList.add(state);}public Memento get(int index){return mementoList.get(index);} } CareTaker 类负责保存备忘录并在需要时提供备忘录。它维护了一个备忘录列表。 步骤 4使用看护者和原发器对象 public class MementoPatternDemo {public static void main(String[] args) {Originator originator new Originator();CareTaker careTaker new CareTaker();originator.setState(State #1);originator.setState(State #2);careTaker.add(originator.saveStateToMemento());originator.setState(State #3);careTaker.add(originator.saveStateToMemento());originator.setState(State #4);System.out.println(当前状态: originator.getState()); originator.getStateFromMemento(careTaker.get(0));System.out.println(第一次保存的状态: originator.getState());originator.getStateFromMemento(careTaker.get(1));System.out.println(第二次保存的状态: originator.getState());} }在这个演示类中我们创建了一个原发器对象 originator 和一个看护者对象 careTaker。原发器对象更改其状态几次并保存这些状态到备忘录。通过看护者对象我们能够恢复原发器对象之前的状态。 这个示例演示了备忘录模式如何用于保存和恢复对象的状态同时不暴露对象的内部结构。通过这种方式可以实现如撤销功能这样的操作而不影响对象的封装性 代码地址 23种设计模式相关代码后续会逐步提交到github上方便学习欢迎指点 代码地址 https://github.com/RuofeiSun/lf-23Pattern
http://www.pierceye.com/news/513491/

相关文章:

  • 网站建设三方合同范本wordpress数字链接出现404
  • 下载用的网站怎么做网站模板怎么使用教程
  • 没有网站 可以做百度口碑吗展馆的科普网站建设
  • 河北网站备案查询系统商城网站seo
  • 网站申请页面网站空间不够用怎么办
  • 网站开发最合适的搭配螺栓球网架
  • 广东网站建设排名凡科建站下载
  • 建设厅网站预算员报名时间网站建设策划书的编制
  • 厦门手机网站建设公司哪家好鲜花网站源码
  • 北京家居网站建设如何制作软件手机软件
  • 北京网站建设策划解决方案长沙建设工程造价网站
  • 北京网站设计公司价格阿里云wordpress插件
  • 网站建设自助建站企业萧山人才网手机版
  • 长沙建站挺找有为太极wordpress 需要zend
  • 通信管理局 网站备案天猫网站设计教程
  • 营销型网站制作成都打造品牌的三点策略
  • 做查工资的网站如何下载网页在线视频
  • 北沙滩网站建设公司主页怎么填
  • 手机asp网站网站设计方案
  • 长春市网站开发广东一站式网站建设推荐
  • 企业网站推广策略商会联盟网站建设方案
  • 清丰网站建设百度推广建设网站是不是合发
  • 邢台12345网站哪个公司的装饰设计公司
  • 嘉兴网嘉兴网站建设手机网站管理软件
  • 网站主色调简介怎么说本地常州微信网站建设
  • 电子商务网站数据库建设怎样推广一个网站
  • illustrator 学习网站wordpress外链产品
  • 电脑端网站一般做多宽最好网页游戏制作成本
  • 怎样做好手机网站建设wordpress开启xml rpc
  • 泉州企业网站建设公司做外贸要建什么网站