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

网站搭建软件做门户网站需要什么条件

网站搭建软件,做门户网站需要什么条件,网站ip查询,开发公司公司简介备忘录设计模式(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/a/550298.html

相关文章:

  • 开发网站做什么萨龙wordpress
  • 函数的嵌套调用求最大值
  • 2v1带您实战12nm高级数字后端
  • Linux之文本处理小工具+shell从入门到精通
  • 怎样提高自己网站排名nginx 网站建设
  • 基于node网站毕设代做广告设计与制作是干什么的
  • [论文笔记] windows wsl快乐试用cursor
  • 购物网站建设策划报告东莞松山湖邮编
  • 【科研】想学习的琐碎知识点-不断更新
  • (根号分治、sosdp)洛谷 P10408 Apple / P7842 探险者笔记 III 题解
  • SCADA软件GENESIS64:基于Web的集中式工程管理平台
  • 专注江苏网站建设五华网站建设 优帮云
  • 如何查询网站域名备案重庆微信网站建设多少钱
  • Apache Doris 4.0 版本正式发布:全面升级 AI 与搜索能力,强化离线计算
  • 苏州网站建设工作室主要的网站开发技术
  • 实现 “先排除数组中对象的 showTiltle: true 字段,再判断两个数组的对象内容是否完全相同(不考虑顺序、只关注对象值和增删和值的变化)”
  • 织梦cms做好的网站怎样上传到服务器做企业网站的步骤
  • 个人备案网站改企业备案网上卡片制作
  • h5游戏免费下载:打喷嚏的喷火龙
  • 网站开发中网页打印网站开发维护运维
  • C语言 了解一下回调函数(钩子函数)的使用
  • 网站制作内容在线网站制作系统源码
  • 校园微网站建设方案ppt模板下载文本编辑器 网站
  • 长沙便宜做网站帝国cms网站地图生成
  • 软件测试大赛赛前培训【Web测试】
  • 解决Docker Buildx导致镜像拉取失败的问题
  • 网站建设对电子商务中的作用网上销售哪些平台免费
  • 信贷员在哪个网站做推广陕西城乡住房建设厅网站
  • 从哪看出网站的建站公司php网站开发工程
  • zabbix 模板 监控项 图形