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

太原网站优化技术手机网站建设报价

太原网站优化技术,手机网站建设报价,大学生家教网站开发,韩国做 mp4下载网站备忘录设计模式(Memento Pattern) 在不破坏封闭的前提下,捕获一个对象的内部状态,保存对象的某个状态,以便在适当的时候恢复对象,又叫做快照模式,属于行为模式备忘录模式实现的方式需要保证被保…
  • 备忘录设计模式(Memento Pattern)

    • 在不破坏封闭的前提下,捕获一个对象的内部状态,保存对象的某个状态,以便在适当的时候恢复对象,又叫做快照模式,属于行为模式
    • 备忘录模式实现的方式需要保证被保存的对象状态不能被对象从外部访问
  • 应用场景

    • 玩游戏存档功能,下一次登录游戏时可以从上次退出的地方继续游戏
    • 棋盘类游戏的悔棋
    • 数据库事务回滚
    • 需要记录一个对象的内部状态时,为了允许用户取消不确定或者错误的操作,能够恢复到原先的状态
    • 提供一个可回滚的操作,如Ctrl+Z、浏览器回退按钮
  • 角色

    • Originator发起者:记录当前的内部状态,并负责创建和恢复备忘录数据,允许访问返回到先前状态所需的所有数据,可以根据需要决定Memento存储自己的哪些内部状态

    • Memento备忘录:负责存储Originator发起人对象的内部状态,在需要的时候提供发起人需要的内部状态

    • Caretaker管理者:对备忘录进行管理、保存和提供备忘录,只能将备忘录传递给其他角色

    • Originator和Memento属性类似

      在这里插入图片描述

  • 代码示例,以游戏存档、回退为例

    /*** 发起者*/
    class RoleOriginator {// 生命值private int hp = 100;// 攻击力private int attack = 10;public int getHp() {return hp;}public void setHp(int hp) {this.hp = hp;}public int getAttack() {return attack;}public void setAttack(int attack) {this.attack = attack;}public void display() {System.out.println("生命:" + hp + ",攻击力:" + attack);}public void fight() {// 攻击力上涨this.attack += 2;// 生命值下降this.hp -= 10;System.out.println("战斗了一次");}/*** 存档:保存快照** @return*/public RoleStateMemento saveState() {System.out.println("存档成功");return new RoleStateMemento(hp, attack);}/*** 恢复存档** @param memento*/public void recoveryState(RoleStateMemento memento) {this.hp = memento.getHp();this.attack = memento.getAttack();System.out.println("恢复存档成功");}
    }/*** 备忘录、快照*/
    class RoleStateMemento {// 生命值private int hp;// 攻击力private int attack;public RoleStateMemento(int hp, int attack) {this.hp = hp;this.attack = attack;}public int getHp() {return hp;}public void setHp(int hp) {this.hp = hp;}public int getAttack() {return attack;}public void setAttack(int attack) {this.attack = attack;}
    }/*** 状态管理者*/
    class RoleStateCaretaker {private RoleStateMemento memento;public RoleStateMemento getMemento() {return memento;}public void setMemento(RoleStateMemento memento) {this.memento = memento;}
    }public class Main {public static void main(String[] args) {RoleOriginator roleOriginator = new RoleOriginator();roleOriginator.display();roleOriginator.fight();roleOriginator.display();// 存档RoleStateCaretaker caretaker = new RoleStateCaretaker();caretaker.setMemento(roleOriginator.saveState());roleOriginator.fight();roleOriginator.fight();roleOriginator.fight();roleOriginator.display();// 恢复存档roleOriginator.recoveryState(caretaker.getMemento());roleOriginator.display();}
    }
    
  • 优点

    • 给用户提供了一种可以恢复状态的机制
    • 实现了信息的封装,使得用户不需要关心状态的保存细节
  • 缺点

    • 消耗更多的资源,而且每一次保存都会消耗一定的内存

文章转载自:

http://uq1zXiky.cyjdr.cn
http://B4altzGG.cyjdr.cn
http://3bwXoML6.cyjdr.cn
http://arLfiMb5.cyjdr.cn
http://SbNpiury.cyjdr.cn
http://zmO0eWHr.cyjdr.cn
http://Ona21kLp.cyjdr.cn
http://87bkrZh5.cyjdr.cn
http://uqAf63hP.cyjdr.cn
http://Fk42dJSz.cyjdr.cn
http://Y7UzMQQF.cyjdr.cn
http://V2lW3FVl.cyjdr.cn
http://0ntmsVlz.cyjdr.cn
http://KS8C3UTS.cyjdr.cn
http://1OR6psiA.cyjdr.cn
http://5tQBNSCg.cyjdr.cn
http://CNZu1TAb.cyjdr.cn
http://HMEGiuAj.cyjdr.cn
http://xiBZo1Wm.cyjdr.cn
http://vc1rg25S.cyjdr.cn
http://1ETuMP3P.cyjdr.cn
http://hhdPrZK4.cyjdr.cn
http://FGXcmd1g.cyjdr.cn
http://yRiJRedc.cyjdr.cn
http://hZpWXioD.cyjdr.cn
http://3t9Bsvql.cyjdr.cn
http://pTgFgdFQ.cyjdr.cn
http://AqjTG50w.cyjdr.cn
http://cLZOkT4a.cyjdr.cn
http://AvMpyKYu.cyjdr.cn
http://www.dtcms.com/wzjs/751154.html

相关文章:

  • 广州 网站设计公司排名网站介绍模板
  • 如何写网站优化方案深圳知名广告公司有哪些
  • 性价比最高网站建设哪里好建立网站第一步是什么
  • 网站301重定向代码手机常用网站
  • 网站排名不稳定网站内容建设整改工作
  • 几十万做网站平台关键字排名软件官网
  • 网站备案 接入商名称宜昌网站建设
  • 如何设计制作一般的企业网站企业信息平台官网
  • 做旅游网站的目的与意义拟定网站建设合同
  • 企业网站哪家做的好门户网站建设中标结果
  • 有没有专门做教育培训的网站wordpress后台菜单修改
  • 网站建设平台协议书安阳区号是多少
  • 西安电商平台网站wordpress建地方门户
  • 怎么做网站代码yandex搜索入口
  • 闽清建设局网站做网站时候如果添加微信代码
  • 河南省做网站的公司宜宾网站建设哪家好
  • 网站字体大小是多少canva 可画人物插画
  • 网站建设接私活平台基于网站开发app
  • 淘宝客云建站官网wordpress 多站 列表
  • 网站用什么语言开发wordpress内涵主题
  • 具有价值的微网站建设中国建设银行网站密码
  • 气血不足做网站怎样创建个人购物网站
  • phpwind网站wordpress管理员密码忘
  • 网站建设实习困难橱柜衣柜做网站
  • 西安分销商城网站建设百度登录入口
  • 帮别人起名 做ppt的网站在线申请营业执照
  • 网站如何做seo排名wordpress淘点金
  • wordpress怎么更换网站logo网站建设vip教程
  • 网站空间租用哪个好哈尔滨专业制作网站制作
  • 中小型网站服务器搭建方案沂南网站优化