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

网站设计与网站建设网站seo资讯

网站设计与网站建设,网站seo资讯,网站模版与模板的使用,网站建设教程 迅雷下载链接:C 设计模式 链接:C 设计模式 - 状态模式 备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不破坏封装性的前提下捕获和恢复对象的内部状态。这个模式在需要保存和恢复对象状态的场景中非常有用&#xff…

链接:C++ 设计模式
链接:C++ 设计模式 - 状态模式

备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不破坏封装性的前提下捕获和恢复对象的内部状态。这个模式在需要保存和恢复对象状态的场景中非常有用,例如实现撤销操作。

1.问题分析

在开发中,有时需要保存对象的状态,以便在需要时恢复到之前的状态。这种需求在撤销/重做操作、游戏存档、编辑器状态恢复等场景中尤为常见。
备忘录模式通过将对象的状态封装在一个独立的备忘录对象中,实现了状态的保存和恢复,同时保持了对象的封装性。

2.实现步骤

  1. 定义备忘录类:存储对象的内部状态,
  2. 定义发起人类:负责创建和恢复备忘录。
  3. 定义管理者类:负责保存和管理备忘录对象。
  4. 客户端代码:实现保存状态到备忘录和从备忘录恢复状态。

3.代码示例

3.1.定义备忘录类

// Memento类,负责存储机器人的状态
class Memento {public:Memento(int x, int y, const std::string& state) : x_(x), y_(y), state_(state) {}int getX() const { return x_; }int getY() const { return y_; }std::string getState() const { return state_; }private:int x_;int y_;std::string state_;
};

3.2.定义发起人类

// Robot类,负责创建和恢复Memento
class Robot {public:void setPosition(int x, int y) {x_ = x;y_ = y;std::cout << "Position set to: (" << x << ", " << y << ")" << std::endl;}void setState(const std::string& state) {state_ = state;std::cout << "State set to: " << state << std::endl;}Memento saveStateToMemento() { return Memento(x_, y_, state_); }void getStateFromMemento(const Memento& memento) {x_ = memento.getX();y_ = memento.getY();state_ = memento.getState();std::cout << "State restored to: (" << x_ << ", " << y_ << "), " << state_ << std::endl;}private:int x_;int y_;std::string state_;
};

3.3.定义管理者类

// Caretaker类,负责保存和恢复Memento
class Caretaker {public:void addMemento(const Memento& memento) { mementos_.push_back(memento); }Memento getMemento(int index) const { return mementos_.at(index); }private:std::vector<Memento> mementos_;
};

3.4.客户端代码

int main() {Robot robot;Caretaker caretaker;robot.setPosition(0, 0);robot.setState("Idle");caretaker.addMemento(robot.saveStateToMemento());robot.setPosition(10, 20);robot.setState("Moving");caretaker.addMemento(robot.saveStateToMemento());robot.setPosition(30, 40);robot.setState("Stopped");robot.getStateFromMemento(caretaker.getMemento(0));robot.getStateFromMemento(caretaker.getMemento(1));return 0;
}
http://www.hkea.cn/news/117334/

相关文章:

  • 做网站应该会什么问题网络营销软文范例500字
  • 摄影网课百度关键词优化查询
  • 打广告型的营销网站西安百度推广外包
  • 乌鲁木齐招聘网站建设一站式网络营销
  • 中小型网站建设服务淘宝数据分析工具
  • 梧州网站设计企业网站模板建站
  • 行政事业单位网站建设建议营销策划公司
  • 网络推广网站怎么做百度联盟广告点击一次收益
  • wordpress居中样式宁波seo网络推广外包报价
  • java做网站用到哪些技术网络营销的重要性与意义
  • 网络营销推广的作用谷歌seo什么意思
  • 免费网站建设解决方案郑州网络营销公司哪个好
  • 转转怎么做钓鱼网站税收大数据
  • 株洲专业网站排名优化深圳产品网络推广
  • 深圳美食教学网站制作如何免费搭建自己的网站
  • 兰州移动端网站建设广东整治互联网霸王条款
  • 彩票网站该怎么建设天津seo实战培训
  • 原平的旅游网站怎么做的新冠疫情最新情况最新消息
  • 网站开发软件著作权归谁seo外包
  • 小说网站的网编具体做哪些工作南宁网站快速排名提升
  • 承德网站设计seo互联网营销培训
  • 工信部网站备案查询 手机seo专员的工作内容
  • 淘宝活动策划网站视频营销成功的案例
  • 精准营销数据杭州排名优化软件
  • 中卫网站建站设计seo学习论坛
  • wordpress初始登录seo排名赚app靠谱吗
  • 软件外包保密协议seo相关岗位
  • 后台网站开发文档下载班级优化大师app
  • 辛集城乡建设管理局网站网络营销网络推广
  • 阿里云部署一个自己做的网站吗电商网站搭建