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

永康网站网站建设如何做网站结构优化

永康网站网站建设,如何做网站结构优化,做公司网站要注意什么,预约网免费建站流程1 备忘录模式介绍 备忘录模式(memento pattern)定义: 在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态. 2 备忘录模式原理 3 备忘录模式实现 /*** 发起人角色**/ public class Originator {private Strin…1 备忘录模式介绍 备忘录模式(memento pattern)定义: 在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态. 2 备忘录模式原理 3 备忘录模式实现 /*** 发起人角色**/ public class Originator {private String state 原始对象;private String id;private String name;private String phone;public Originator() {}//创建备忘录对象public Memento createMemento(){return new Memento(id,name,phone);}//恢复对象public void restoreMemento(Memento m){this.state m.getState();this.id m.getId();this.name m.getName();this.phone m.getPhone();}Overridepublic String toString() {return Originator{ state state \ , id id \ , name name \ , phone phone \ };}public String getState() {return state;}public void setState(String state) {this.state state;}public String getId() {return id;}public void setId(String id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone phone;} }/*** 备忘录角色* 访问权限为: 默认,在同包下可见(尽量保证只有发起者类可以访问备忘录类)**/ class Memento {private String state 从备份对象恢复原始对象;private String id;private String name;private String phone;public Memento() {}public Memento(String id, String name, String phone) {this.id id;this.name name;this.phone phone;}public String getState() {return state;}public void setState(String state) {this.state state;}public String getId() {return id;}public void setId(String id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone phone;}Overridepublic String toString() {return Memento{ state state \ , id id \ , name name \ , phone phone \ };} }/*** 负责人类-获取和保存备忘录对象**/ public class Caretaker {private Memento memento;public Memento getMemento() {return memento;}public void setMemento(Memento memento) {this.memento memento;} }public class Client {public static void main(String[] args) {//创建发起人对象Originator o1 new Originator();o1.setId(1);o1.setName(spike);o1.setPhone(13522777722);System.out.println(o1);//创建负责人对象Caretaker caretaker new Caretaker();caretaker.setMemento(o1.createMemento());//修改o1.setName(update);System.out.println( o1);//从负责人对象中获取备忘录对象,实现恢复操作o1.restoreMemento(caretaker.getMemento());System.out.println( o1);} }4 备忘录模式应用实例 /*** 备份玩家的状态**/ class Memento {private int money; //玩家获取的金币ArrayList fruits; //玩家获取的水果public Memento(int money) {this.money money;this.fruits new ArrayList();}//获取当前玩家的金币public int getMoney(){return money;}//获取当前玩家的水果List getFruits(){return (List) fruits.clone();}//添加水果void addFruit(String fruit){fruits.add(fruit);}}Player玩家类,只要玩家的金币还够,就会一直进行游戏,在该类中会设置一个createMemento方法,其作用是保存当前玩家状态.还会包含一个restore撤销方法,相当于复活操作. /*** 玩家类**/ public class Player {private int money; //金币private ListString fruits new ArrayList(); //玩家获得的水果private static String[] fruitsName { //表示水果种类的数组苹果,葡萄,香蕉,橘子};Random random new Random();public Player(int money) {this.money money;}//获取当前所有金币public int getMoney(){return money;}//获取一个水果public String getFruit(){String prefix ;if(random.nextBoolean()){prefix 好吃的;}//从数组中拿一个水果String f fruitsName[random.nextInt(fruitsName.length)];return prefix f;}//掷骰子方法public void yacht(){int dice random.nextInt(6) 1; //掷骰子if(dice 1){money 100;System.out.println(所持有的金币增加了...);}else if(dice 2){money / 2;System.out.println(所持有的金币减少一半);}else if(dice 6){ //获取水果String fruit getFruit();System.out.println(获取了水果: fruit);fruits.add(fruit);}else{//其他结果System.out.println(无效数字,继续投掷!);}}//拍摄快照public Memento createMemento(){Memento memento new Memento(money);for (String fruit : fruits) {//判断: 只保存 好吃的水果if(fruit.startsWith(好吃的)){memento.addFruit(fruit);}}return memento;}//撤销方法public void restoreMemento(Memento memento){this.money memento.getMoney();this.fruits memento.getFruits();}Overridepublic String toString() {return Player{ money money , fruits fruits };} }测试: 由于引入了备忘录模式,可以保存某个时间点的玩家状态,这样就可以对玩家进行复活操作. public class MainApp {public static void main(String[] args) throws InterruptedException {//创建玩家类,设置初始金币Player player new Player(100);//创建备忘录对象Memento memento player.createMemento();for (int i 0; i 100; i) {//显示扔骰子的次数System.out.println(第 i次投掷!);//显示当前玩家状态System.out.println(当前状态: player);//开启游戏player.yacht();System.out.println(玩家所持有的金币: player.getMoney() 元);//复活操作if(player.getMoney() memento.getMoney()){System.out.println(赚到金币,保存当前状态,继续游戏!);memento player.createMemento(); //更新快照}else if(player.getMoney() memento.getMoney() / 2){System.out.println(所持金币不多,将游戏恢复到初始状态!);player.restoreMemento(memento);}Thread.sleep(1000);}} }5 备忘录模式总结
http://www.hkea.cn/news/14440363/

相关文章:

  • 江山市城乡建设局网站湘潭网站建设 沟通磐石网络
  • 网站开发专业培训合肥网站建站建设
  • 生产企业做网站的费用怎么做账兰州网站建设索王道下拉
  • 官网的网站建设公司建设工程东莞网站建设技术支持
  • 设计师经常用的网站协会网站建设需要注意什么
  • asp.net做网站视频株洲网红打卡地
  • 防伪网站怎么做阿里巴巴网站运营
  • 免费做外贸的网站房地产营销门户网站开发
  • 营销型企业网站的建设方案装修图片
  • 横琴网站建设网站没有备案 合法吗
  • 展示型网站 asp.net课程网站开发背景和意义
  • 淮安网站网站建设企业网址搭建
  • 创可贴网页设计网站适合网络营销的产品
  • 广西梧州市住房和城乡建设局网站网站网页是怎么做的
  • 长沙麓谷建设发展有限公司网站开发者选项在哪里打开vivo
  • 成都网站建设成都网络公司wordpress 关闭保存修订版本
  • wordpress建站位置电商平台建设做网站
  • 顺义建站公司河南企业站seo
  • 搭建网站需要什么工具seo自然优化排名
  • 山东省住房和建设厅网站品牌女装有哪些牌子
  • 视频制作素材网站大朗镇做网站
  • 山西网站建设页游排行榜前十名网络游戏
  • 贵州城乡住房建设网站网站做下载页面
  • 丁香人才网官方网站深圳华强北现在能去吗
  • 电商设计灵感网站广州海珠区新楼盘在售楼盘
  • 个人做加盟商机网站如何盈利商城网站设计服务商
  • 做资源网站有哪些用来做微网站的
  • 青柠海报设计网站北京电商营销中心
  • 做网站北京公司怎么做简单的微信浏览的网站
  • 翻译软件翻译英语做网站品牌设计公司收费标准