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

有个能写文章做任务的网站网站建设设计团队

有个能写文章做任务的网站,网站建设设计团队,物流企业的网站模板,国内网页设计软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。 汇总目录链接&…

软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。

汇总目录链接:【玩转23种Java设计模式】学习目录汇总整理

文章目录

  • 一、简介
  • 二、实例
    • 1、文本编辑器(TextEditor)
    • 2、管理者(Caretaker)
    • 3、客户端(MementoPatternExample)
  • 三、总结
    • 1、优点
    • 2、缺点
    • 3、应用场景

一、简介

  备忘录模式(Memento Pattern)是一种行为型设计模式,用于保存对象的状态,以便在未来可以恢复到之前的某个状态。该模式避免了直接暴露对象的内部状态,从而实现了数据的封装性。

主要角色:

  • Originator(发起人):创建并存储自身状态到备忘录中,可以从备忘录中恢复状态。
  • Memento(备忘录):存储发起人的状态,提供给发起人恢复状态的接口。
  • Caretaker(管理者):负责保存和管理备忘录,但不能操作备忘录内容。

二、实例

例如:模拟文本编辑器中“撤销”操作的实现。

1、文本编辑器(TextEditor)

class TextEditor {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();}// Memento:备忘录内部类static class Memento {private final String text;private Memento(String text) {this.text = text;}private String getText() {return text;}}
}

2、管理者(Caretaker)

class Caretaker {private final List<TextEditor.Memento> mementoList = new ArrayList<>();public void addMemento(TextEditor.Memento memento) {mementoList.add(memento);}public TextEditor.Memento getMemento(int index) {return mementoList.get(index);}
}

3、客户端(MementoPatternExample)

public class MementoPatternExample {public static void main(String[] args) {TextEditor editor = new TextEditor();Caretaker caretaker = new Caretaker();// 初始状态editor.setText("Hello");System.out.println("Initial Text: " + editor.getText());caretaker.addMemento(editor.save());// 修改状态1editor.setText("Hello, World");System.out.println("Updated Text: " + editor.getText());caretaker.addMemento(editor.save());// 修改状态2editor.setText("Hello, Design Patterns");System.out.println("Updated Text: " + editor.getText());caretaker.addMemento(editor.save());// 撤销操作editor.restore(caretaker.getMemento(1));System.out.println("After Undo: " + editor.getText());// 再次撤销editor.restore(caretaker.getMemento(0));System.out.println("After Second Undo: " + editor.getText());}
}

三、总结

1、优点

  • 封装性好:发起人和备忘录内部状态的实现细节对外界透明,保证了对象的封装性。
  • 状态恢复:可以轻松保存和恢复对象的状态,适合需要频繁回退操作的场景。
  • 灵活性高:支持保存多个状态,提供多种恢复方式。

2、缺点

  • 资源消耗大:如果状态对象较大或需要保存的状态很多,可能会消耗较多内存。
  • 管理复杂:需要一个管理机制来保存和恢复状态,增加了系统复杂性。

3、应用场景

  • 撤销和重做功能:如文本编辑器、图形编辑器。
  • 游戏存档:在游戏中保存和恢复玩家的进度。
  • 事务性操作:在操作失败时可以回滚到之前的状态。
  • 状态恢复:适用于需要频繁切换对象状态的场景。
http://www.yayakq.cn/news/121948/

相关文章:

  • 免费注册微信网站工商网站查询企业信息官网
  • 宁波城乡建设局网站怎么查看vps网站服务器时间
  • 企业网站整理优化国外效果图网站
  • 福建省建设局网站实名制网站建设公司的电话
  • 门户网站管理系统单位网站开发合同
  • 经典网站模板下载搭建服务平台
  • 嵌入式软件开发教程宁波网站优化方案
  • 做一手房开什么网站比较好呢网页制作简单
  • 福建泉州做淘宝的拿货什么网站平台推广图片
  • 网站建设方案书是什么免费seo快速排名系统
  • 福建漳州东山建设局网站企业网站建设存在的问题
  • 广源建设集团网站网站开发要学的课程
  • 软件下载大全网站用visual做的网站
  • 垡头网站建设网站建设的技术保证怎么写
  • 速冻蔬菜做哪个国际网站好深圳微信公众号开发
  • 美食论坛网站模板百度网盘怎么做网站
  • 专业电容层析成像代做网站网站定制要求
  • 西宁市城乡规划和建设局网站东莞已出现病例
  • 源码论坛网站wordpress siren
  • 网站网站营销特点ih5做自适应网站
  • 网站的建设与维护有什么作用app wordpress类似
  • 网站建设及运营个人心得思途建站
  • 大型集团网站建设南平网站建设wzjseo
  • 石家庄微信网站建设网站建设销售中遇到的问题
  • 企业为什么要开发网址网站seo什么意思
  • c 网站开发平台克拉玛依网站建设
  • 阿里云租的域名怎么做网站有本地服务器怎么做网站
  • 成都网站开发环球中心谷歌浏览器免费入口
  • php 网站备份代码中国建设招标网是什么网站
  • 彩票销信 网站怎么做爱站seo工具包官网