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

沈阳建设电商网站吉林建设集团网站

沈阳建设电商网站,吉林建设集团网站,移动互联网应用程序安全认证证书是什么,外贸公司如何运作定义 在不破坏封装性的前提下#xff0c;捕获一-个对象的内部状态#xff0c;并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。 应用场景 ➢在软件构建过程中#xff0c;某些对象的状态在转换过程中#xff0c;可能由于某种需要#xff0c;要…定义 在不破坏封装性的前提下捕获一-个对象的内部状态并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。 应用场景 ➢在软件构建过程中某些对象的状态在转换过程中可能由于某种需要要求程序能够回溯到对象之前处于某个点时的状态。如果使用一些公有接口来让其他对象得到对象的状态便会暴露对象的细节实现。 ➢如何实现对象状态的良好保存与恢复?但同时又不会因此而破坏对象本身的封装性。 结构 代码示例 //Memento.h /****************************************************/ #ifndef MEMENTO_H #define MEMENTO_H #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; };#endif//test.cpp /****************************************************/ #include Memento.hint 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; }运行结果 要点总结 备忘录(Memento) 存储原发器(Originator) 对象的内部状态,在需要时恢复原发器状态。Memento模式的核心是信息隐藏即Originator需要向外界隐藏信息保持其封装性。但同时又需要将状态保持到外界(Memento)。由于现代语言运行时(如C#、Java等) 都具有相当的对象序列化支持因此往往采用效率较高、又较容易正确实现的序列化方案来实现Memento模式。
http://www.hkea.cn/news/14587995/

相关文章:

  • 郑州网站建设修改深圳市建设工程交易服务网中心
  • 百度seo排名优化公司海口网站优化
  • 丹阳网站建设公司hulu网站在中国做内容吗
  • 如何把网站加入白名单设计类型的网站
  • 制作网站如何赚钱小程序源码下载网
  • 四川招标采购信息网官网小学生班级优化大师
  • 招聘网站系统怎么做出名的网站有哪些
  • 佛山外贸网站建设流程一个网站建设初期的成本
  • dede免费手机网站模板c 网站开发 视频
  • 假淘宝网站怎么做百度关键词竞价价格
  • 一般网站空间要多大网站的建设服务器
  • 工商工事上哪个网站做程序员接私活平台
  • vs2013如何做网站域名查询阿里云
  • 老网站怎么优化揭阳手机网站建设
  • 慈溪网站开发我做网站如何分流客户
  • 网站开发公司 上海百度一下打开
  • 司法局网站建设自己免费制作app
  • 动态电子商务网站 制作机械类 网站源码
  • 建立网站用英语怎么说中国央企100强排名
  • 网站建设相关的吴忠网站设计公司
  • 自己做的网站 jen苏州市市政建设集团公司网站
  • 国外高清视频素材网站推荐虚拟主机代理商的网站打不开了怎么办
  • 怎么接网站开发外包百度做推广一般要多少钱
  • 湖南网站建设找拉米拉wordpress 捐赠
  • 网站备案信息查询接口宜昌便宜做网站
  • 中国城乡建设经济研究所 网站北京模板建站设计
  • 东莞英文网站制作wordpress主题框架开发
  • 有域名 有主机 怎么建设网站镇江vi设计
  • app要有网站做基础知识搜索引擎在线
  • 西安网站制作排名wordpress书籍模板