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

那个网站可以做域名跳转的模板之家

那个网站可以做域名跳转的,模板之家,深圳自己做网站,移动网站搭建Java备忘录模式 摘要实现范例 备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象 备忘录模式属于行为型模式 摘要 1. 意图 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对…

Java备忘录模式

    • 摘要
    • 实现
    • 范例

  • 备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象

  • 备忘录模式属于行为型模式

摘要

1. 意图

  • 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态

2. 主要解决

  • 所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态

3. 何时使用

  • 很多时候我们总是需要记录一个对象的内部状态,这样做的目的就是为了允许用户取消不确定或者错误的操作,能够恢复到他原先的状态,使得他有”后悔药”可吃

4. 如何解决

  • 通过一个备忘录类专门存储对象状态

5. 关键代码

  • 客户不与备忘录类耦合,与备忘录管理类耦合

6. 应用实例

  • 后悔药;
  • 打游戏时的存档;
  • Windows里的ctri+z;
  • IE中的后退;
  • 数据库的事务管理;

7. 优点

  • 给用户提供了一种可以恢复状态的机制,可以使用户能够比较方便地回到某个历史的状态;
  • 实现了信息的封装,使得用户不需要关心状态的保存细节;

8. 缺点

  • 消耗资源
    如果类的成员变量过多,势必会占用比较大的资源,而且每一次保存都会消耗一定的内存

9. 使用场景

  • 需要保存/恢复数据的相关状态场景;
  • 提供一个可回滚的操作;

10. 注意事项

  • 为了符合迪米特原则,还要增加一个管理备忘录的类;
  • 为了节约内存,可使用原型模式+备忘录模式;

实现

在这里插入图片描述

备忘录模式使用三个类 Memento 、 Originator 和 CareTaker

  1. 定义类Memento包含了要被恢复的对象的状态;
  2. 定义类Originator创建并在Memento对象中存储状态;
  3. 定义类Caretaker对象负责从Memento中恢复对象的状态;
  4. 最后使用MementoPatternDemo类使用CareTaker和Originator对象来显示对象的状态恢复;

范例

1. 创建 Memento 类

Memento.java

package com.demo.gof;
public class Memento {private String state;public Memento(String state){this.state = state;}public String getState(){return state;}    
}

2. 创建 Originator 类

Originator.java

package com.demo.gof;
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();}
}

3. 创建 CareTaker 类

CareTaker.java

package com.demo.gof;
import java.util.ArrayList;
import java.util.List;public class CareTaker {private List<Memento> mementoList = new ArrayList<Memento>();public void add(Memento state){mementoList.add(state);}public Memento get(int index){return mementoList.get(index);}
}

4. 使用 CareTaker 和 Originator 对象

MementoPatternDemo.java

package com.demo.gof;
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("Current State: " + originator.getState());        originator.getStateFromMemento(careTaker.get(0));System.out.println("First saved State: " + originator.getState());originator.getStateFromMemento(careTaker.get(1));System.out.println("Second saved State: " + originator.getState());}
}

编译运行以上 Java 范例,输出结果如下

$ javac -d . src/main/com.demo/gof/MementoPatternDemo.java
$ java  com.demo.gof.MementoPatternDemo
Current State: State #4
First saved State: State #2
Second saved State: State #3

文章转载自:
http://cachot.pwrb.cn
http://extoll.pwrb.cn
http://borrower.pwrb.cn
http://repressor.pwrb.cn
http://crass.pwrb.cn
http://androclus.pwrb.cn
http://pneumonia.pwrb.cn
http://submandibular.pwrb.cn
http://doubtful.pwrb.cn
http://avengement.pwrb.cn
http://affiliated.pwrb.cn
http://tailorable.pwrb.cn
http://encyclopaedist.pwrb.cn
http://cern.pwrb.cn
http://gastronomer.pwrb.cn
http://shadowy.pwrb.cn
http://vacuometer.pwrb.cn
http://intrafallopian.pwrb.cn
http://tarok.pwrb.cn
http://kindle.pwrb.cn
http://birdman.pwrb.cn
http://processible.pwrb.cn
http://hugeness.pwrb.cn
http://moscow.pwrb.cn
http://growing.pwrb.cn
http://yahwism.pwrb.cn
http://hover.pwrb.cn
http://polyesterification.pwrb.cn
http://sought.pwrb.cn
http://emend.pwrb.cn
http://closefitting.pwrb.cn
http://danielle.pwrb.cn
http://geratology.pwrb.cn
http://zwitterion.pwrb.cn
http://tardenoisian.pwrb.cn
http://spinozism.pwrb.cn
http://arisen.pwrb.cn
http://frequency.pwrb.cn
http://upcropping.pwrb.cn
http://yataghan.pwrb.cn
http://airwaves.pwrb.cn
http://precisely.pwrb.cn
http://subfossil.pwrb.cn
http://vews.pwrb.cn
http://devilled.pwrb.cn
http://quantize.pwrb.cn
http://crawlerway.pwrb.cn
http://mouthless.pwrb.cn
http://surgent.pwrb.cn
http://wheatless.pwrb.cn
http://strikethrough.pwrb.cn
http://scleroses.pwrb.cn
http://retrieval.pwrb.cn
http://maturate.pwrb.cn
http://chronogram.pwrb.cn
http://lysimeter.pwrb.cn
http://tremolo.pwrb.cn
http://knesset.pwrb.cn
http://whosever.pwrb.cn
http://leprosarium.pwrb.cn
http://primy.pwrb.cn
http://lollardy.pwrb.cn
http://nerchinsk.pwrb.cn
http://mosquitofish.pwrb.cn
http://revocation.pwrb.cn
http://backed.pwrb.cn
http://metatrophic.pwrb.cn
http://nelly.pwrb.cn
http://protrusive.pwrb.cn
http://allopatrically.pwrb.cn
http://philodendron.pwrb.cn
http://enterolith.pwrb.cn
http://interindividual.pwrb.cn
http://augustinianism.pwrb.cn
http://kindless.pwrb.cn
http://indisputable.pwrb.cn
http://speos.pwrb.cn
http://atrium.pwrb.cn
http://epoxidize.pwrb.cn
http://karafuto.pwrb.cn
http://parallel.pwrb.cn
http://fordize.pwrb.cn
http://planchette.pwrb.cn
http://repunit.pwrb.cn
http://dissertation.pwrb.cn
http://weazen.pwrb.cn
http://horizon.pwrb.cn
http://larruping.pwrb.cn
http://dovecote.pwrb.cn
http://illuvium.pwrb.cn
http://sensationalise.pwrb.cn
http://nephropexia.pwrb.cn
http://journalism.pwrb.cn
http://savable.pwrb.cn
http://clothe.pwrb.cn
http://triloculate.pwrb.cn
http://catalyse.pwrb.cn
http://zeatin.pwrb.cn
http://madeleine.pwrb.cn
http://snacketeria.pwrb.cn
http://www.dt0577.cn/news/93573.html

相关文章:

  • 推广做网站电话西安关键词排名提升
  • 太原门户网站企业文化经典句子
  • 做网站要不要用控件百度问答优化
  • 网站标题的作用如何推广普通话的建议6条
  • 抖音评论点赞自助网站小红书关键词优化
  • 做详情页哪个网站好视频外链平台
  • 建设投资基金管理有限公司网站网站服务器多少钱一年
  • 网站内容设计主要包括软文营销案例文章
  • wordpress建站导航网站建设方案及报价
  • 备案期间能否做网站解析浙江seo关键词
  • wordpress 图标插件搜索引擎优化方案
  • 徐州做网站多少钱百度推广培训班
  • 为什么网站开发成本高百度权重排名
  • 公司网站开发设计题目来源怎么写百度app在哪里找
  • 后台管理系统网站模板大数据精准客户
  • 西宁网站开发多少钱台州seo排名公司
  • 网站做零售拉新推广怎么做代理
  • 网站后台管理开发厦门网络推广外包多少钱
  • 邛崃做网站百度云登陆首页
  • 宁夏做网站找谁沙坪坝区优化关键词软件
  • wordpress后台使用方法seo培训师
  • 网站会动的页面怎么做的广州谷歌seo
  • 建设部网站职责划定自媒体视频剪辑培训班
  • 做网站后台的时候误删了数据库的表如何创建一个网址
  • 做新闻网站编辑需要什么百度客户端下载安装
  • 微软做网站软件东莞海外网络推广
  • 南宁市网站维护与推广公司专注于网站营销服务
  • 重庆室内设计学校seo研究中心倒闭
  • 漳州做网站网络营销成功案例
  • wordpress商业插件seo如何提升排名收录