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

十大最好的网站展厅设计与施工公司

十大最好的网站,展厅设计与施工公司,济源做网站,建大网站备忘录模式#xff08;Memento Pattern#xff09;#xff0c;也称为快照模式或Token模式#xff0c;是GoF#xff08;Gang of Four#xff0c;四位设计模式专家#xff09;提出的23种设计模式之一#xff0c;属于行为模式。该模式的主要目的是在不破坏封装性的前提下Memento Pattern也称为快照模式或Token模式是GoFGang of Four四位设计模式专家提出的23种设计模式之一属于行为模式。该模式的主要目的是在不破坏封装性的前提下捕获一个对象的内部状态并在该对象之外保存这个状态以便在适当的时候能够恢复到原先的状态。 备忘录模式主要包含以下三个角色 Originator发起人负责创建一个备忘录Memento用以记录当前时刻自身的内部状态并可使用备忘录恢复内部状态。Originator可以根据需要决定Memento存储自己的哪些内部状态。Memento备忘录负责存储Originator对象的内部状态并可以防止Originator以外的其他对象访问备忘录。备忘录有两个接口Caretaker只能看到备忘录的窄接口他只能将备忘录传递给其他对象而Originator却可看到备忘录的宽接口允许它访问返回到先前状态所需要的所有数据。Caretaker管理者负责保存备忘录Memento但不能对Memento的内容进行访问或者操作。 备忘录模式的优点包括 封装性备忘录模式可以把复杂的发起人内部信息对其他的对象屏蔽起来从而可以恰当地保持封装的边界。简化发起人发起人不再需要管理和保存其内部状态的一个个版本客户端可以自行管理他们所需要的这些状态的版本。恢复机制提供了一种状态恢复的实现机制使得用户可以方便地回到一个特定的历史步骤当新的状态无效或者存在问题时可以使用暂时存储起来的备忘录将状态复原。 然而备忘录模式也有其缺点 资源消耗如果发起人角色的状态需要完整地存储到备忘录对象中那么在资源消耗上面备忘录对象会很昂贵。存储空间未知当负责人角色将一个备忘录存储起来的时候负责人可能并不知道这个状态会占用多大的存储空间从而无法提醒用户一个操作是否很昂贵。 以下是一个简单的备忘录模式Memento Pattern的Java代码示例。在这个示例中我们有一个Originator类它有一个内部状态并可以创建和恢复其状态的备忘录。Memento类用于存储Originator的状态而Caretaker类则负责保存和管理这些备忘录。 // 备忘录接口 interface Memento {// 这里可以定义一些方法来获取备忘录的状态 }// 具体的备忘录类 class OriginatorMemento implements Memento {private String state;public OriginatorMemento(String state) {this.state state;}// 获取备忘录的状态这里只是一个简单的getter方法public String getState() {return state;}// 可能还有其他方法来设置状态但在这个简单的例子中我们不需要 }// 发起人类 class Originator {private String state;// 创建一个备忘录并返回public Memento createMemento() {return new OriginatorMemento(this.state);}// 恢复备忘录中的状态public void restoreMemento(Memento memento) {this.state ((OriginatorMemento) memento).getState();}// 设置发起人状态public void setState(String state) {this.state state;}// 获取发起人状态public String getState() {return state;} }// 管理者类 class Caretaker {private Memento memento;// 保存备忘录public void setMemento(Memento memento) {this.memento memento;}// 获取备忘录public Memento getMemento() {return memento;} }// 客户端代码 public class Client {public static void main(String[] args) {Originator originator new Originator();Caretaker caretaker new Caretaker();// 设置发起人状态originator.setState(State 1);System.out.println(Current state: originator.getState());// 保存当前状态到备忘录caretaker.setMemento(originator.createMemento());// 修改发起人状态originator.setState(State 2);System.out.println(Current state: originator.getState());// 恢复之前保存的备忘录中的状态originator.restoreMemento(caretaker.getMemento());System.out.println(Restored state: originator.getState());} }在这个例子中Originator类有一个state字段它可以通过setState方法设置并通过getState方法获取。createMemento方法创建一个OriginatorMemento对象其中包含当前的state。restoreMemento方法接受一个Memento对象并将其中的状态设置回Originator的state字段。 Caretaker类用于保存Memento对象并在需要时提供访问。 在Client类中我们创建了一个Originator和一个Caretaker对象并演示了如何设置、保存和恢复Originator的状态。
http://www.pierceye.com/news/711664/

相关文章:

  • 开发网站合作协议网站建设团购
  • 管理手机网站网站规划与建设重要性理解与体会
  • 小辰青岛网站建设自己怎么开网站
  • 天津市建设工程合同备案网站网站建设 开发 模板
  • 外贸网站建设公司报价jsp网站建设技术案例
  • 旅行社英文模板网站织梦 网站迁移
  • 北京网站开发不限年龄伊春建设银行网站
  • 通辽公司做网站网站常规seo优化步骤
  • 成都集团网站设计推荐夫唯seo系统培训
  • 服务器有了网站怎么做的零食进货渠道网
  • 网站建设的学习方法桔子建站
  • 公司网站开通长沙免费网站建站模板
  • 汕头手机建站模板建设工程合同司法解释一
  • 品牌网站建设基本流程中山外发加工网
  • 网站迁移教材xyz域名的网站有哪些
  • 茂名公司网站开发tp框架做视频网站
  • 专门做家教的网站优秀网站设计赏析
  • 美食网站的建设背景婚庆网站建设
  • 榆社网站建设销售新品牌如何推广
  • 网站制作的公司哪家比较好网页作图软件
  • 网站开发质保动态wordpress动态主题
  • 建公司网站设计网站公司百度后台登录
  • 响应式网站开发方法建设汽车行业网站
  • 51ppt模板免费下载网站浏览器下载大全免费下载
  • 阳西县建设局网站.net网站项目有哪些
  • 门户网站优化网站建立软件
  • 贵阳网站建设在哪里陕西省住房城乡建设部门户网站
  • 深圳网站建设799元起全包域名企业网站分为哪四类
  • 潍坊网站建设公司商城网站建设建站系统
  • 苏州区网站建设网站前台乱码