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

学网站开发培训机构每日财经最新消息

学网站开发培训机构,每日财经最新消息,linux wordpress是什么意思,常州效果图制作设计模式—行为型模式之备忘录模式 备忘录(Memento)模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模…

设计模式—行为型模式之备忘录模式

备忘录(Memento)模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式。这是一种对象行为型模式。

有如下角色:

  • 发起人(Originator)角色:记录当前时刻的内部状态信息,提供创建备忘录和恢复备忘录数据的功能,实现其他业务功能,它可以访问备忘录里的所有信息。

  • 备忘录(Memento)角色:负责存储发起人的内部状态,在需要的时候提供这些内部状态给发起人。

  • 管理者(Caretaker)角色:对备忘录进行管理,提供保存与获取备忘录的功能,但其不能对备忘录的内容进行访问与修改。

示例

比如我们有一个奥特曼游戏,每一个奥特曼有血量,等级,我们可以建一个游戏备份来保存这些有用的内容,并使用游戏服务器管理他们。

奥特曼类如下:

@Data
public class Ultraman {private Integer hp;//血量private Integer level;//等级//备忘录管理者private GameServer gameServer = new GameServer();/*** 进行游戏*/public void play(){hp = level = new Random().nextInt();}/*** 保存备忘录*/public void saveRocord() throws Exception {System.out.println("保存备忘录");gameServer.addRecord(this);}/*** 获取备忘录*/public Ultraman restoreRecord(Integer id) throws Exception {System.out.println("获取记录");return gameServer.getRecord(id);}public void exit() throws Exception {System.out.println("退出并存档");gameServer.addRecord(this);}
}

记录类如下:

/*** 游戏备份----备忘录*/
@Data
public class GameRocord {private Integer id;//备忘录idprivate Integer hp;//血量private Integer level;//等级
}

游戏服务器类如下:

/*** 游戏服务器——备忘录管理者*/
public class GameServer {//记录idprivate Integer i = 1;//备忘录管理private Map<Integer,GameRocord> recordMap = new HashMap<>();/*** 添加备忘录*/public void addRecord(Ultraman ultraman) throws Exception {GameRocord gameRocord = new GameRocord();BeanUtils.copyProperties(gameRocord,ultraman);gameRocord.setId(i++);recordMap.put(gameRocord.getId(),gameRocord);}/*** 恢复备忘录*/public Ultraman getRecord(Integer id) throws Exception{GameRocord gameRocord = recordMap.get(id);Ultraman ultraman = new Ultraman();BeanUtils.copyProperties(ultraman,gameRocord);return ultraman;}}

测试类如下:

public class MementoTest {public static void main(String[] args) throws Exception {Ultraman ultraman = new Ultraman();//进行游戏ultraman.play();//存档ultraman.saveRocord();ultraman.setHp(1);ultraman.saveRocord();Ultraman ultramanRecord = ultraman.restoreRecord(1);ultraman.exit();}
}

运行截图如下:

运行截图

http://www.wangmingla.cn/news/6063.html

相关文章:

  • 小说网站采集可以做嘛seo快速优化方法
  • 南开做网站的公司竞价排名名词解释
  • 59做网站山西疫情最新情况
  • 北京网站seo优化排名google关键词分析工具
  • 刚成立公司如何做网站注册网站流程和费用
  • 成都青羊建设厅官方网站搜索引擎优化论文
  • 一起看在线观看免费seo学校培训课程
  • 宝山专业做网站我要推广网
  • 网站建设相关新闻东莞seo计费
  • 网站模板 整站源码怎么给网站做优化
  • 北京网站设计培训班seo快速排名外包
  • 亚马逊网站 如何做站内seo常用的关键词挖掘工具
  • 查域名信息seo优化6个实用技巧
  • 合肥网页设计就业免费seo网站自动推广
  • 广告公司寮步网站建设平台怎样推广
  • seo搜索引擎优化岗位要求广东短视频seo营销
  • 营销型网站的特点怎么把广告发到各大平台
  • 徐州网架加工惠州抖音seo
  • 重庆seo整站优化服务南宁seo推广优化
  • 长椿街网站建设友情链接发布平台
  • 潍坊点睛做网站怎么样营销推广的特点是
  • 烟台做网站公司哪家好东莞市网站建设
  • 科技平台网站建设网络营销课程个人总结
  • 哪些网站可宣传学seo优化
  • 做logo什么网站sem和seo的区别
  • 今日新闻热点seo外链收录
  • php做网站的技术难点erp123登录入口
  • 发票商品名称网站建设seo是什么工作
  • 怎么做国内网站舆情监测软件免费版
  • 沈阳建筑大学信息公开网金华seo扣费