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

天津做网站推广的网站曼斯特(北京)网站建设公司

天津做网站推广的网站,曼斯特(北京)网站建设公司,广告设计专业培训,深圳企业名录深圳黄页目录 问题引进 游戏角色状态恢复问题 传统方案解决游戏角色恢复 传统的方式的问题分析 备忘录模式基本介绍 基本介绍 备忘录模式的原理类图 对原理类图的说明 游戏角色恢复状态实例 应用实例要求 思路分析和图解(类图) 代码实战 备忘录模式的注意事项和细节 问题引… 目录 问题引进 游戏角色状态恢复问题 传统方案解决游戏角色恢复 传统的方式的问题分析 备忘录模式基本介绍 基本介绍 备忘录模式的原理类图 对原理类图的说明 游戏角色恢复状态实例 应用实例要求 思路分析和图解(类图) 代码实战  备忘录模式的注意事项和细节 问题引进 游戏角色状态恢复问题 游戏角色有攻击力和防御力在大战 Boss 前保存自身的状态(攻击力和防御力)当大战 Boss 后攻击力和防御力下降从备忘录对象恢复到大战前的状态 传统方案解决游戏角色恢复 传统的方式的问题分析 1) 一个对象就对应一个保存对象状态的对象 这样当我们游戏的对象很多时不利于管理开销也很大. 2) 传统的方式是简单地做备份new 出另外一个对象出来再把需要备份的数据放到这个新对象但这就暴露了对象内部的细节 3) 解决方案 备忘录模式 备忘录模式基本介绍 基本介绍 1) 备忘录模式Memento Pattern在不破坏封装性的前提下捕获一个对象的内部状态并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态 2) 可以这里理解备忘录模式现实生活中的备忘录是用来记录某些要去做的事情或者是记录已经达成的共同意见的事情以防忘记了。而在软件层面备忘录模式有着相同的含义备忘录对象主要用来记录一个对象的某种状态或者某些数据当要做回退时可以从备忘录对象里获取原来的数据进行恢复操作 3) 备忘录模式属于行为型模式 备忘录模式的原理类图 对原理类图的说明 1) originator : 对象(需要保存状态的对象) 2) Memento 备忘录对象,负责保存好记录即 Originator 内部状态 3) Caretaker: 守护者对象,负责保存多个备忘录对象 使用集合管理提高效率 4) 说明如果希望保存多个 originator 对象的不同时间的状态也可以只需要要 HashMap String, 集合 游戏角色恢复状态实例 应用实例要求 游戏角色有攻击力和防御力在大战 Boss 前保存自身的状态(攻击力和防御力)当大战 Boss 后攻击力和防御力下降从备忘录对象恢复到大战前的状态 思路分析和图解(类图) 代码实战  Memento  public class Memento {private int vit;private int def;public Memento(int vit, int def) {this.vit vit;this.def def;}public int getVit() {return vit;}public void setVit(int vit) {this.vit vit;}public int getDef() {return def;}public void setDef(int def) {this.def def;} }GameRole   public class GameRole {private int vit;private int def;public Memento createMemento(){return new Memento(vit,def);}//从备忘录对象回复GameRole的状态public void recoverGameRoleFromMemento(Memento memento){this.vit memento.getVit();this.def memento.getDef();}//显示当前游戏角色的状态public void display() {System.out.println(游戏角色当前的攻击力 this.vit 防御力: this.def);}public int getVit() {return vit;}public void setVit(int vit) {this.vit vit;}public int getDef() {return def;}public void setDef(int def) {this.def def;} } Caretaker  public class Caretaker {//如果只保存一次状态private Memento memento;//如果对GameRole保存多次状态 // private ArrayListMemento mementos;//对多个游戏对象保存多个状态 // private HashMapString,ArrayListMemento rolesMementos;public Memento getMemento() {return memento;}public void setMemento(Memento memento) {this.memento memento;} } Client   public class Client {public static void main(String[] args) {GameRole gameRole new GameRole();gameRole.setVit(100);gameRole.setDef(100);System.out.println(和boss大战之前的状态);gameRole.display();//把当前在保存caretakerCaretaker caretaker new Caretaker();caretaker.setMemento(gameRole.createMemento());System.out.println(和 boss大战);gameRole.setDef(30);gameRole.setVit(30);gameRole.display();System.out.println(大战以后使用备忘录进行回复);gameRole.recoverGameRoleFromMemento(caretaker.getMemento());System.out.println(恢复后的状态);gameRole.display();} } 备忘录模式的注意事项和细节 1) 给用户提供了一种可以恢复状态的机制可以使用户能够比较方便地回到某个历史的状态 2) 实现了信息的封装使得用户不需要关心状态的保存细节 3) 如果类的成员变量过多势必会占用比较大的资源而且每一次保存都会消耗一定的内存, 这个需要注意 4) 适用的应用场景 后悔药。 打游戏时的存档。 Windows 里的 ctri z。 IE 中的后退。数据库的事务管理 5) 为了节约内存备忘录模式可以和原型模式配合使用
http://www.w-s-a.com/news/63767/

相关文章:

  • 2020电商网站排行榜如何开设网站
  • 绍兴seo网站管理创新的网站建站
  • 做网站需要的图片网站的视频怎么下载
  • 教人做家务的网站滕州网站建设网站行吗
  • 湖北专业的网瘾学校哪家口碑好seo百度百科
  • 保定网站制作软件网页制作工具程
  • o2o网站建设教程计算机培训班培训费用
  • 赤峰网站制作php智能建站系统
  • 做高防鞋 哪个网站能上架net网站开发net网站开发
  • 做网站公司郑州推广计划步骤
  • 网站建设计无形资产外国做美食视频网站
  • 创立一个网站需要什么网推技巧
  • 网站的会员功能怎么做wordpress主题开拓右边栏
  • 做个一般的网站要多少钱nas 建网站
  • 网页设计作品源代码彼岸花坊网站seo测评
  • 用什么软件做动漫视频网站好环保网站设计价格
  • 合肥网站设计服投稿网站源码
  • 为什么很多网站用php做上海口碑最好的装修公司排名
  • 运城网站推广找人做小程序要多少钱
  • 做外链哪个网站好seo诊断网站
  • 网站建设与管理考查方案上海公司免费起名
  • 哪个网站做h5好做汽车网站
  • 汝州网站制作住房和城乡建设部官网进行查询
  • 怎么做整人点不完的网站获取网站访客qq号码源码
  • 自建网站软件网站如何减少404跳转
  • 我想学制作网站吗公司起名网站十大排名
  • 广州白云手机网站建设淘宝店铺怎么推广
  • 青海省住房与城乡建设厅网站珠海高端网站制作公司
  • 深圳个性化建网站公司简便网站建设
  • 网站安全狗十大免费ppt网站在线