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

根据百度地图做网站郑州网络推广大包

根据百度地图做网站,郑州网络推广大包,wordpress mail功能用不了,宁波新冠疫情最新消息1.意图 备忘录模式是一种行为型设计模式,允许在不破坏封装的特性前提,获取并保存一个对象的内部状态,后续需要时恢复该状态。核心是将对象的状态存储在一个独立的备忘录对象中,并在需要时恢复。 2.模式类型 行为型对象设计模式 …

1.意图

        备忘录模式是一种行为型设计模式,允许在不破坏封装的特性前提,获取并保存一个对象的内部状态,后续需要时恢复该状态。核心是将对象的状态存储在一个独立的备忘录对象中,并在需要时恢复。

2.模式类型

       行为型对象设计模式

3.UML图

上述类的表示:

        a.Originator 负责创建 Memento 并恢复状态。

        b.Caretaker 存储多个 Memento,但不修改其内容。

        c.Memento 仅提供 getState() 方法,确保封装性。

4.优缺点

        优点:

        提供了恢复状态机制,且保持对象的封装性,支持撤销操作。

        缺点:

        耗费内存,且增加了代码的复杂度,频繁的操作性能下降。

5.示例代码

#include <iostream>
#include <string>
#include <vector>
#include <sstream>// 备忘录类(存储 Originator 的状态)
class Memento {
private:std::string state;  // 保存的状态public:Memento(const std::string& state) : state(state) {}std::string getState() const { return state; }
};// 原发器类(需要保存状态的对象)
class Originator {
private:std::string state;public:void setState(const std::string& newState) {std::cout << "Originator: Change state to " << newState << std::endl;state = newState;}// 创建备忘录(保存当前状态)Memento save() {return Memento(state);}// 恢复备忘录(恢复之前的状态)void restore(const Memento& memento) {state = memento.getState();std::cout << "Originator: Restored state to " << state << std::endl;}void printCurrentState(){std::cout << "Originator: current state is  " << state << std::endl;}
};// 管理者类(存储备忘录)
class Caretaker {
private:std::vector<Memento> mementos;public:void addMemento(const Memento& memento) {mementos.push_back(memento); // 每个状态都对应一个Memento类}Memento getMemento(int index) {return mementos.at(index);}
};// 客户端代码
int main() {Originator originator;Caretaker caretaker;for(auto i = 0;i < 5;++i){// 设置状态并保存std::stringstream  ss;ss << i;std::string strStat = "State #" + ss.str();originator.setState(strStat);caretaker.addMemento(originator.save());}originator.printCurrentState();// 恢复到第一个状态originator.restore(caretaker.getMemento(3));return 0;
}输出:
root@ubuntu:~/mySpace/design_m_c++/disign_modle/Beiwanglu# ./a.out 
Originator: Change state to State #0
Originator: Change state to State #1
Originator: Change state to State #2
Originator: Change state to State #3
Originator: Change state to State #4
Originator: current state is  State #4
Originator: Restored state to State #3

综上即为备忘录模式特点。 

http://www.dtcms.com/wzjs/236169.html

相关文章:

  • 与做网站的人怎么谈判google下载官方版
  • 有没有可以做各种字体的网站企业官方网站推广
  • 网站建设费计入什么科目比较好软件培训班
  • 商业网站用什么语言做网站制作出名的公司
  • 先做网页设计还是先弄网站网站维护费用
  • 临沂网站建设做网站怎么进入百度推广账户
  • 行业自建网站三亚百度推广公司
  • 网站信息建设山西搜索引擎优化
  • 做视频解析网站是犯法的么电商培训课程
  • 网站 微信认证人工在线客服
  • 自己做的网站怎么做客服聊天seo搜索价格
  • 家居类企业响应式网站微信上怎么做广告推广
  • 做驾考学时在哪个网站搜索引擎有哪些
  • win8风格门户网站销售清单软件永久免费版
  • 以你的心诠释我的爱网页设计素材海淀区seo搜索引擎
  • 网站制作费一般多少刷网站百度关键词软件
  • 一元云购网站建设模块青岛网站推广关键词
  • 网站建设新闻 常识竞价排名的定义
  • 鞍山发布奶盘seo伪原创工具
  • 海洋cms怎么做电影网站手机百度下载安装
  • 杭州电子商务网站建设英文网站seo
  • 网站制作郑州友情连接
  • 网站优化排名如何做产品营销策划方案
  • 成都市住房与城乡建设局官网桂林seo排名
  • 0元建设黑网站lol今日赛事直播
  • 宜兴做网站的公司有哪些哪个模板建站好
  • 做网站时字幕怎么做精准客户信息一条多少钱
  • 空气炸锅做糕点的网站谷歌sem服务商
  • 企业网站结构图郑州网络seo公司
  • thinkphp5 做网站福州短视频seo服务