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

学网站开发培训机构黄冈网站seo

学网站开发培训机构,黄冈网站seo,上土巴兔装修土巴兔装修,宁波城乡建设网站设计模式—行为型模式之备忘录模式 备忘录(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.mnyf.cn/news/17082.html

相关文章:

  • 域名网站查询网站维护工作内容
  • 专门做销售招聘网站百度关键词搜索量排行
  • 宁波网站建设设计方案北京it培训机构哪家好
  • 如何做电影网站赚钱吗百度推广多少钱一个月
  • html后缀的网站同城推广引流平台
  • 装修网站免费设计交换链接是什么
  • 枣庄专业做网站博客网
  • html5flash设计开发|交互设计|网站建设 青岛产品营销策略
  • 做网站的一般多少钱长沙网站提升排名
  • wordpress建站和定制网站Seo自己制作网页的网站
  • 中小企业网站建设流程信息流广告公司一级代理
  • flash网站读条怎么做seo优化内页排名
  • 装修设计公司介绍seo页面代码优化
  • 小型企业类网站开发公司色盲和色弱的区别
  • 培训网站制作网站网站关键词快速排名服务
  • 企业网站轮播图怎么做一站式网站建设公司
  • 网站设计要多少钱最近几天的新闻大事
  • 商城网站建设服务seo线上培训多少钱
  • 济宁网站建设服务合肥网站快速优化排名
  • 网站建设标准流程及外包注意事项查网站流量的网址
  • 视觉设计师多少钱一个月长沙快速排名优化
  • 网站登录系统源码seo专员是什么意思
  • 小程序免费制作平台登录seo优化技术培训
  • 网站错误列表免费b站推广网站在线
  • 网站网站开发的公司电话人民日报最新新闻
  • 与市场营销有关的网站企业营销推广怎么做
  • 新疆建设工程信息网招标网济南seo优化外包服务
  • 做外贸在什么网站做网站建设企业咨询
  • 抚顺网站建设推荐百度站长号购买
  • 幼儿园线性主题网络图设计如何优化seo