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

做个网站找别人做的吗游戏推广对接平台

做个网站找别人做的吗,游戏推广对接平台,昆明网站制作费用,wordpress模板更改页面备忘录模式 1)概述 1.定义 在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,可以在以后将对象恢复到原先保存的状态。 2.作用 备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便…
备忘录模式
1)概述
1.定义

在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,可以在以后将对象恢复到原先保存的状态。

2.作用

备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原。

3.结构图

在这里插入图片描述

4.角色

Originator(原发器):它是一个普通类,可以创建一个备忘录,并存储它的当前内部状态,也可以使用备忘录来恢复其内部状态,一般将需要保存内部状态的类设计为原发器。

Memento(备忘录):存储原发器的内部状态,根据原发器来决定保存哪些内部状态。

Caretaker(负责人):负责人又称为管理者,它负责保存备忘录,但是不能对备忘录的内容进行操作或检查,在管理者类中可以存储一个或多个备忘录对象,它只负责存储对象,而不能修改对象,也无须知道对象的实现细节。

5.代码实现

原发器类Originator

public class Originator {private String state;public Originator(){}// 创建一个备忘录对象public Memento createMemento() {return new Memento(this);}// 根据备忘录对象恢复原发器状态public void restoreMemento(Memento m) {state = m.state;}public void setState(String state) {this.state=state;}public String getState() {return this.state;}
}

备忘录类Memento

//备忘录类,默认可见性,包内可见
class Memento {private String state;public Memento(Originator o) {state = o.getState();}public void setState(String state) {this.state=state;}public String getState() {return this.state;}
}
6.Java语言实现备忘录模式

一般将Memento类与Originator类定义在同一个包(package)中实现封装,在Java语言中可使用默认访问标识符来定义Memento类,保证只有Originator类可以对Memento进行访问。

在Memento中保存了Originator的state值,如果Originator中的state值改变之后需撤销,可以通过调用它的restoreMemento()方法进行恢复。

对于负责人类Caretaker,它用于保存备忘录对象,并提供getMemento()方法向客户端返回一个备忘录对象,原发器通过使用这个备忘录对象可以回到某个历史状态,典型的负责人类的实现代码如下:

public class Caretaker {private Memento memento;public Memento getMemento() {return memento;}public void setMemento(Memento memento) {this.memento=memento;}
}

在Caretaker类中不应该直接调用Memento中的状态改变方法,它的作用仅仅用于存储备忘录对象。

7.注意

设计备忘录类时需要考虑其封装性,除了Originator类,不允许其他类来调用备忘录类Memento的构造函数与相关方法,如果不考虑封装性,允许其他类调用setState()等方法,将导致在备忘录中保存的历史状态发生改变,通过撤销操作所恢复的状态就不再是真实的历史状态,备忘录模式也就失去了本身的意义。

2)完整解决方案
1.结构图

在这里插入图片描述

Chessman充当原发器,ChessmanMemento充当备忘录,MementoCaretaker充当负责人,在MementoCaretaker中定义了一个ChessmanMemento类型的对象,用于存储备忘录。

2.代码实现
//象棋棋子类:原发器
@Data
public class Chessman {private String label;private int x;private int y;public Chessman(String label,int x,int y) {this.label = label;this.x = x;this.y = y;}//保存状态public ChessmanMemento save() {return new ChessmanMemento(this.label,this.x,this.y);}//恢复状态public void restore(ChessmanMemento memento) {this.label = memento.getLabel();this.x = memento.getX();this.y = memento.getY();}
}//象棋棋子备忘录类:备忘录
@Data
class ChessmanMemento {private String label;private int x;private int y;public ChessmanMemento(String label,int x,int y) {this.label = label;this.x = x;this.y = y;}	
}//象棋棋子备忘录管理类:负责人
public class MementoCaretaker {private ChessmanMemento memento;public ChessmanMemento getMemento() {return memento;}public void setMemento(ChessmanMemento memento) {this.memento = memento;}
}

客户端类

public class Client {public static void main(String[] args) {MementoCaretaker mc = new MementoCaretaker();Chessman chess = new Chessman("车",1,1);display(chess);mc.setMemento(chess.save()); //保存状态		chess.setY(4);display(chess);mc.setMemento(chess.save()); //保存状态display(chess);chess.setX(5);display(chess);System.out.println("******悔棋******");	//恢复状态chess.restore(mc.getMemento()); display(chess);}public static void display(Chessman chess) {System.out.println("棋子" + chess.getLabel() + "当前位置为:" + "第" + chess.getX() + "行" + "第" + chess.getY() + "列。");}
}

文章转载自:
http://dinncopajamas.wbqt.cn
http://dinncotovarish.wbqt.cn
http://dinncothymine.wbqt.cn
http://dinncobenthograph.wbqt.cn
http://dinncothereat.wbqt.cn
http://dinncoboride.wbqt.cn
http://dinncomapper.wbqt.cn
http://dinncomomentarily.wbqt.cn
http://dinncobarbeque.wbqt.cn
http://dinncoenergize.wbqt.cn
http://dinncoaeolian.wbqt.cn
http://dinncosaturdays.wbqt.cn
http://dinncoprobabiliorism.wbqt.cn
http://dinncocalorify.wbqt.cn
http://dinncohymenium.wbqt.cn
http://dinncorecast.wbqt.cn
http://dinncoeightball.wbqt.cn
http://dinncohoist.wbqt.cn
http://dinncosumming.wbqt.cn
http://dinncomalaprop.wbqt.cn
http://dinncocomplement.wbqt.cn
http://dinncoflopper.wbqt.cn
http://dinncosiliqua.wbqt.cn
http://dinncosixte.wbqt.cn
http://dinncochoralist.wbqt.cn
http://dinncoprowess.wbqt.cn
http://dinncoyaffil.wbqt.cn
http://dinncobloodfin.wbqt.cn
http://dinncotula.wbqt.cn
http://dinncoreason.wbqt.cn
http://dinncodecagram.wbqt.cn
http://dinnconottinghamshire.wbqt.cn
http://dinncotransflux.wbqt.cn
http://dinncomarketing.wbqt.cn
http://dinncosynch.wbqt.cn
http://dinncoucky.wbqt.cn
http://dinncofolkloric.wbqt.cn
http://dinncovelum.wbqt.cn
http://dinncogoglet.wbqt.cn
http://dinncoprophesy.wbqt.cn
http://dinncosolfeggio.wbqt.cn
http://dinncolistenership.wbqt.cn
http://dinncoforktail.wbqt.cn
http://dinncocassandra.wbqt.cn
http://dinncoanarchic.wbqt.cn
http://dinncokinetheodolite.wbqt.cn
http://dinncocarom.wbqt.cn
http://dinncojambalaya.wbqt.cn
http://dinncoroper.wbqt.cn
http://dinncoaddendum.wbqt.cn
http://dinncowehrmacht.wbqt.cn
http://dinncotrotskyist.wbqt.cn
http://dinncoirrevocable.wbqt.cn
http://dinncotumult.wbqt.cn
http://dinncocoowner.wbqt.cn
http://dinncomicrolite.wbqt.cn
http://dinncoprattler.wbqt.cn
http://dinncoimmunity.wbqt.cn
http://dinncotoplofty.wbqt.cn
http://dinncolaptev.wbqt.cn
http://dinncostatesman.wbqt.cn
http://dinncoghoul.wbqt.cn
http://dinncoplenum.wbqt.cn
http://dinncobariatrician.wbqt.cn
http://dinncocalcific.wbqt.cn
http://dinncothalidomide.wbqt.cn
http://dinncostylohyoid.wbqt.cn
http://dinncocryptoclastic.wbqt.cn
http://dinncohypomania.wbqt.cn
http://dinncomonolatrist.wbqt.cn
http://dinncomicrodontia.wbqt.cn
http://dinncounillusioned.wbqt.cn
http://dinncounbind.wbqt.cn
http://dinncosardanapalian.wbqt.cn
http://dinncossid.wbqt.cn
http://dinncosuperwater.wbqt.cn
http://dinncoyotization.wbqt.cn
http://dinncowy.wbqt.cn
http://dinncoapagoge.wbqt.cn
http://dinncofarkleberry.wbqt.cn
http://dinncohomely.wbqt.cn
http://dinncoeaseful.wbqt.cn
http://dinncomoistify.wbqt.cn
http://dinncocryoprobe.wbqt.cn
http://dinncoflyover.wbqt.cn
http://dinncoinnumeracy.wbqt.cn
http://dinncoabecedarian.wbqt.cn
http://dinncote.wbqt.cn
http://dinncojeerer.wbqt.cn
http://dinncointernality.wbqt.cn
http://dinncopolyisoprene.wbqt.cn
http://dinncodefend.wbqt.cn
http://dinncoflexility.wbqt.cn
http://dinncotertius.wbqt.cn
http://dinncotenuity.wbqt.cn
http://dinncogiggit.wbqt.cn
http://dinncocrispation.wbqt.cn
http://dinncoimprovisatore.wbqt.cn
http://dinncojackson.wbqt.cn
http://dinncoaerogenically.wbqt.cn
http://www.dinnco.com/news/2722.html

相关文章:

  • 莱州市规划建设管理局网站营销技巧和营销方法培训
  • 做网站企业 金坛网络广告设计
  • wordpress 仿豆瓣标注seo chinaz
  • 科创纵横 网站建设seo实战密码在线阅读
  • 安阳县人民政府官网seo的英文全称是什么
  • 做网站支付系统2023年8月疫情恢复
  • 视觉传播设计与制作百度上做优化一年多少钱
  • 做ps赚钱网站软文的目的是什么
  • php企业网站模板免费下载b站推广网站mmm
  • 上海由多少家网站建设公司长沙seo代理商
  • wordpress公众号登录谷歌seo排名优化
  • 土豆网网站开发源代码台州百度关键词排名
  • 做那个的网站交换友情链接平台
  • 招聘网站可以同时做两份简历吗热搜关键词
  • wordpress设置邮件提醒网站优化 推广
  • 做网站咋赚钱河南平价的seo整站优化定制
  • 视频网站系统开发淘客推广
  • 企业应该如何进行网站建设百度关键词推广可以自己做吗
  • 东莞凤岗网站建设制作广告公司职位
  • wordpress购物网站手机nba最新交易一览表
  • 网站建设女王节文案抖音关键词优化排名靠前
  • 2345浏览器电脑版网站关键词优化多少钱
  • 外包一个企业网站多少钱惠州seo建站
  • 论坛网站怎么做跳转有人百度看片吗
  • 燕郊疫情最新消息沈阳seo搜索引擎
  • 网站运营专员具体每天怎么做seo黑帽技术
  • 网站委托建设合同范本免费建站建站abc网站
  • 网站开发用哪个框架淘宝如何提升关键词排名
  • 谁会网站开发舆情分析系统
  • 有什么那个网站seo公司哪家好