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

如何做网站搜索栏可以发外链的论坛有哪些

如何做网站搜索栏,可以发外链的论坛有哪些,苏州建筑业网,郑州网站建设定制开发备忘录设计模式(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://www.dtcms.com/wzjs/312004.html

相关文章:

  • 宁波网站建设方案报价营销推广的工具有哪些
  • 合肥制作手机网站百度一下你就知道下载
  • 如何设计好酒店网站模板北京seo推广系统
  • 便捷网站建设价格沈阳网站关键词优化多少钱
  • 哪些网站可以直接做英文字谜中国今天刚刚发生的新闻
  • dreamweaver 做网站苏州手机关键词优化
  • 商务贸易网站建设百度竞价排名事件分析
  • 网站建设 后期维护app软件推广怎么做
  • 岳池做网站电话如何做优化排名
  • 网站建设炎陵网络营销策略的演变
  • 美美淘-专做女鞋拿货选款网站360收录入口
  • 外贸网站模板下载自动seo优化
  • 网站关于我们示例seo求职信息
  • 龙华网站建设app促销方法100种
  • 物流公司logo标志设计seo软文是什么意思
  • 网站建设小故事网络推广员上班靠谱吗
  • 长春手机建站模板浙江seo外包
  • dede做的网站怎样去换模版全球最受欢迎的网站排名
  • 8月4号建设部网站重庆seo推广外包
  • 做网站专业公司电脑优化用什么软件好
  • 淘宝网站建设需要哪些技术微信推广链接怎么制作
  • 资海集团网站建设黑马培训价目表
  • 网站建设如何测试百度地图导航网页版
  • 女装网站欣赏网络营销推广方案设计
  • 铭做网站建设品牌推广宣传词
  • 北京网站建设公司案例南宁网络推广平台
  • 网站 特效都是用什么软件做的百度推广后台登录
  • 正能量网站ip广州今天刚刚发生的重大新闻
  • 鞍山做网站哪家好网络营销
  • 网站制作程序网络推广员每天的工作是什么