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

网站建设评审会的通知咸阳住房和城乡建设局网站

网站建设评审会的通知,咸阳住房和城乡建设局网站,北京封闭小区名单最新,廊坊网站建设案例备忘录模式#xff08;Memento Pattern#xff09;是一种行为型设计模式#xff0c;用于保存对象的内部状态#xff0c;以便在将来某个时间可以恢复到该状态#xff0c;而不暴露对象的内部实现细节。备忘录模式特别适合在需要支持撤销#xff08;Undo#xff09;操作的应…备忘录模式Memento Pattern是一种行为型设计模式用于保存对象的内部状态以便在将来某个时间可以恢复到该状态而不暴露对象的内部实现细节。备忘录模式特别适合在需要支持撤销Undo操作的应用中。 定义 在不破坏封装的前提下捕获对象的内部状态并在对象之外保存这个状态以便日后能将对象恢复到原先保存的状态。 UML图 备忘录模式涉及的角色 Originator发起者负责创建备忘录对象用来记录自己的内部状态并可以根据备忘录恢复状态。Memento备忘录存储发起者的内部状态防止对象的内部状态泄露。通常只允许发起者访问其内部状态。Caretaker负责人负责保存备忘录对象但不能对备忘录的内容进行操作或访问。 代码 import java.util.ArrayList; import java.util.List;// 发起者类 class Originator {private String state;// 设置状态public void setState(String state) {this.state state;System.out.println(当前状态: state);}// 保存当前状态到备忘录public Memento saveStateToMemento() {return new Memento(state);}// 从备忘录中恢复状态public void getStateFromMemento(Memento memento) {state memento.getState();System.out.println(恢复到状态: state);}// 备忘录类public static class Memento {private final String state;public Memento(String state) {this.state state;}public String getState() {return state;}} }// 负责人类 class Caretaker {private final ListOriginator.Memento mementoList new ArrayList();// 添加备忘录public void add(Originator.Memento state) {mementoList.add(state);}// 获取备忘录public Originator.Memento get(int index) {return mementoList.get(index);} }// 测试类 public class MementoPatternDemo {public static void main(String[] args) {Originator originator new Originator();Caretaker caretaker new Caretaker();// 保存状态originator.setState(状态1);caretaker.add(originator.saveStateToMemento());originator.setState(状态2);caretaker.add(originator.saveStateToMemento());originator.setState(状态3);caretaker.add(originator.saveStateToMemento());// 恢复状态originator.getStateFromMemento(caretaker.get(1)); // 恢复到状态2originator.getStateFromMemento(caretaker.get(0)); // 恢复到状态1} } 场景 1. 撤销/恢复操作 在需要支持“撤销Undo”和“恢复Redo”的应用中备忘录模式非常适用。每当状态发生变化时可以保存一个备忘录对象用户可以在需要时撤销操作恢复到之前的状态。 应用场景 文本编辑器例如在文本处理软件中用户进行编辑时每次输入、删除或格式化操作都改变文档的状态。通过备忘录模式用户可以撤销某些操作并恢复到之前的编辑状态。绘图软件绘图过程中每一步的修改都可能需要撤销或恢复。 2. 保存历史状态 当需要记录一个对象的历史状态并在将来某一时刻恢复特定状态时备忘录模式是一个合适的选择。这样可以在不破坏对象封装性的前提下保存状态。 应用场景 版本控制系统在版本控制中每次保存都会存储文件或项目的状态以便之后能够回溯到某个特定版本。游戏进度保存在游戏中玩家的进度如等级、位置、装备等可以存储为备忘录对象并在玩家需要时从存档中恢复游戏。 3. 事务管理 在涉及复杂事务处理的系统中备忘录模式可以用于事务回滚即当事务中的某些操作失败时能够恢复到之前的状态。 应用场景 数据库事务管理在处理数据库事务时如果某一步操作出错可以回滚到事务开始时的状态从而保证数据一致性。金融交易系统在处理复杂的金融交易时如果发生异常能够回滚到交易前的状态避免数据异常。 4. 需要避免暴露对象细节 在某些情况下系统可能需要恢复对象的状态但不希望暴露对象的内部实现细节。备忘录模式可以在不破坏对象封装的情况下保存和恢复对象状态。 应用场景 封装复杂对象例如某个对象的内部状态比较复杂外部系统需要在多个状态之间切换但是不希望外部直接访问对象的内部状态。备忘录模式允许外部保存和恢复状态而不需要了解对象的内部实现。 5. 定时或阶段性保存 当系统需要阶段性地保存对象的状态以防系统崩溃或其他意外情况时备忘录模式可以记录当前的状态确保系统可以在异常结束后恢复到安全状态。 应用场景 自动备份系统例如某个系统在特定时间或操作后定时保存数据并在崩溃后自动恢复。 6. 数据快照 当系统需要保存某一时刻的状态快照以便后续能够对比或恢复时备忘录模式可以记录状态快照。 应用场景 调试与监控开发人员可以在系统运行的不同阶段记录状态快照并在调试过程中进行恢复以定位问题。 7. 复杂状态管理 对于那些有复杂状态管理需求的系统备忘录模式可以帮助解决状态的存储与恢复问题确保状态管理的灵活性。 应用场景 用户设置的恢复在软件应用中用户可能会进行复杂的设置操作通过备忘录模式系统可以允许用户将配置恢复到之前的某个设置。 局限性 尽管备忘录模式适用于上述场景但它在某些情况下可能不是最优选择特别是当 状态数据庞大如果对象的状态信息较大存储多个备忘录对象可能会占用大量内存。状态变更频繁在频繁保存状态的情况下备忘录的维护成本较高可能会引发性能问题。 总结 备忘录模式的优点在于它在保持对象封装性、实现撤销功能、简化状态管理、降低耦合度的同时支持系统的状态历史保存和事务处理回滚。它特别适用于需要保存和恢复对象状态的应用场景。
http://www.hkea.cn/news/14467116/

相关文章:

  • 个人域名可以建公司网站吗怎么自己做画册网站
  • 校园网站建设宣传怎样看一个网站的浏览量
  • 电商网站建设存在的问题和处理方案宿州网站建设开发公司哪家好
  • 桓台网站推广免费做那个的视频网站
  • 网站建设什么意思吸引人的微信软文范例
  • 网站代理设置惠州附近做商城网站建设哪家好
  • 富阳市网站做医疗健康类网站需要资质吗
  • 墨星写作网站柳州网站建设招聘
  • 国外网站需要备案吗帮人管理网站做淘宝客
  • 太原网站建设哪家效益快windows iis运行php网站
  • 网站设计公司 广州企业做网站便宜
  • 山东高密网站建设网站建设课程报告
  • 河池市都安县建设局网站网站 功能需求
  • 备案网站多长时间烂网站做竞价行吗
  • 网站建设与管理中专个人网站备案 备注
  • 一个用户注册的网站怎么做百度收录申请入口
  • 手机微网站开发书籍seo如何网站正常更新
  • 如何选择专业网站开发商网站建设的毕业设计成果
  • 网站建设加排名要多少做网站 广告费 步骤
  • 专做定制的网站wordpress 面包屑导航修改
  • 网站建设情况存在问题广州番禺人才网
  • 西安模板建站网站途牛旅游线路网站建设分析
  • 设计网站物理结构怎么做厦门建设局领导
  • 网站需备案php源码项目门户网站开发
  • 哪个网站有适合小学生做的题wordpress 制作侧边栏
  • 江苏商城网站制作公司教育 网站模板
  • 建设城市2的游戏在哪个网站鞍山网站制作推广
  • 广州互帮物流哪家公司做的网站石龙网站仿做
  • 许昌市住房和城乡建设局门户网站前十名少儿编程机构
  • 做区位图的网站wordpress文章关联