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

重庆微信网站开发公临潼区做网站的公司

重庆微信网站开发公,临潼区做网站的公司,徐州网站开发价位,百度权重4网站值多少钱1.定义 备忘录模式是一种行为型的软件设计模式#xff0c;在不破坏封装的前提下#xff0c;获取一个对象的内部状态#xff0c;并在对象外保存该状态#xff0c;当对象需要恢复到该状态时#xff0c;对其进行恢复。 2.组成结构 原发器 #xff08;Originator#xff0…1.定义 备忘录模式是一种行为型的软件设计模式在不破坏封装的前提下获取一个对象的内部状态并在对象外保存该状态当对象需要恢复到该状态时对其进行恢复。 2.组成结构 原发器 Originator 类可以生成自身状态的快照 也可以在需要时通过快照恢复自身状态。备忘录 Memento 是原发器状态快照的值对象 value object。 通常做法是将备忘录设为不可变的 并通过构造函数一次性传递数据。负责人 Caretaker 仅知道 “何时” 和 “为何” 捕捉原发器的状态 以及何时恢复状态。负责人通过保存备忘录栈来记录原发器的历史状态。 当原发器需要回溯历史状态时 负责人将从栈中获取最顶部的备忘录 并将其传递给原发器的恢复 restoration 方法。 在该实现方法中 备忘录类将被嵌套在原发器中。 这样原发器就可访问备忘录的成员变量和方法 即使这些方法被声明为私有。 另一方面 负责人对于备忘录的成员变量和方法的访问权限非常有限 它们只能在栈中保存备忘录 而不能修改其状态。 3.示例代码 //Memento.h /****************************************************/ #pragma once #include iostream #include unordered_map #include vector #include list #include stringusing namespace std;// 备忘录类-游戏进度 class Memento { public:// 构造函数Memento(string state) : m_state(state) {}// 获取状态std::string getState() const {return m_state;}private:std::string m_state; };// 发起类-游戏 class Game { public:// 设置状态void setState(string state) {m_state state;}// 获取状态string getState() {return m_state;}// 保存状态至备忘录Memento saveStateToMemento() {return Memento(m_state);}// 从备忘录获取状态void getStateFromMemento(const Memento memento) {m_state memento.getState();}private:std::string m_state; };// 备忘录管理类-进度管理 class CareTaker { public:// 添加备忘录void addMemento(const Memento memento) {m_mementos.push_back(memento);}// 获取备忘录Memento getMemento(int index) {return m_mementos[index];}private:std::vectorMemento m_mementos; };int main() {Game game;CareTaker careTaker;// 通关game.setState(进度第一关通过);game.setState(进度第二关通过);// 保存进度进度被管理系统管理careTaker.addMemento(game.saveStateToMemento());// 继续通关game.setState(进度第三关通过);// 保存进度进度被管理系统管理careTaker.addMemento(game.saveStateToMemento());// 继续通关game.setState(进度第四关通过);// 当前进度cout 当前 game.getState() endl;// 获取首个进度game.getStateFromMemento(careTaker.getMemento(0));cout 1 game.getState() endl;// 获取第二个进度game.getStateFromMemento(careTaker.getMemento(1));cout 2 game.getState() endl;return 0; } 4.优缺点 优点 良好封装性。发起人对象中的内部状态被保存在备忘录中也只能由自己读取对其他对象起到了屏蔽作用。提供了状态恢复机制。类似于游戏存档读档。简化了发起人职责。发起人状态的存储和获取被分离出去了。 缺点 资源消耗较大对发起人对象不同内部状态的存储会导致开销增加。 引用 设计模式之备忘录模式(C)_c 备忘录模式-CSDN博客 C 设计模式之备忘录模式 - 一杯清酒邀明月 - 博客园 (cnblogs.com)
http://wiki.neutronadmin.com/news/371555/

相关文章:

  • 安徽网站制作网络推广引流是什么意思
  • 做淘宝客建网站要多少费用公司网站建设网站
  • 网站优化 kps上海人才网招聘网最新招聘
  • 上海php网站建设在线视频网站开发方案php
  • 网站建设费怎么写会计科目对网站建设有什么样好的建设意见
  • wordpress企业站主题哪个好网页游戏开服表最全
  • 淘宝优惠劵网站怎么做wordpress 微信 主题制作
  • 网站建设案例信息地方门户类网站
  • 重庆网站建设-首选云慧通代理记账网站模板
  • 盐城网站建设咨询凡科门店通怎么样
  • 电子商务网站建设与管理读后感个人养老金制度9月底前亮相
  • 企业类网站模版扬子市建设局网站
  • 公司建设网站申请报告江西网站开发多少钱
  • 网站收录很好没排名菏泽网站建设电话
  • 微网站建设难不难做外贸soho 需要有网站吗
  • 海口哪里做网站公司网站备案 如何填
  • 咸阳做网站的公司电话做网站有流量就有收入吗
  • 网站专题效果图怎么做电子商务有限责任公司网站怎样建立
  • 珠海网站建设解决方案合肥网站建设案例
  • 东莞网站建设的收费网站开发作用
  • 网站建设的针对对象做网站口碑比较好的大公司
  • 淘宝做网站价格长沙微网站
  • 为什么打开网站是建设中阿里云建站可不可以备案
  • 响应式网站开发需要的条件营业推广的方式
  • 网页设计具体方案网站栏目结构优化
  • 克隆网站后怎么做哪里有建设银行
  • 网站怎么做百度权重做网站找哪个平台好
  • 网站建设需要照片吗自己建设网站要花多少钱
  • 网站备案密码有什么用wordpress网页缓存插件
  • 长沙做网站找哪家好如何在百度上发广告