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

黄埔网站建设公司南宁seo外包要求

黄埔网站建设公司,南宁seo外包要求,优秀flash网站设计,微信第五条广告怎么做行为型模型 备忘录模式 应用场景 如果一个对象需要保存状态并可通过undo或rollback等操作恢复到以前的状态时,可以使用Memento模式。 1)一个类需要保存它的对象的状态(相当于Originator角色) 2)设计一个类&#xff0…

行为型模型 备忘录模式

 

应用场景
如果一个对象需要保存状态并可通过undo或rollback等操作恢复到以前的状态时,可以使用Memento模式。
1)一个类需要保存它的对象的状态(相当于Originator角色)
2)设计一个类,该类只是用来保存上述对象的状态(相当于Memento角色)
3)需要的时候,Caretaker角色要求Originator返回一个Memento并加以保存
4)undo或rollback操作时,通过Caretaker保存的Memento恢复Originator对象的状态

 

 

 

Originator(原生者)
        需要被保存状态以便恢复的那个对象。
Memento(备忘录)
        该对象由Originator创建,主要用来保存Originator的内部状态。
Caretaker(管理者)
        负责在适当的时间保存/恢复Originator对象的状态。

适用于:
        在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样就可以将以后的对象状态恢复到先前保存的状态。
        适用于功能比较复杂的,但需要记录或维护属性历史的类;或者需要保存的属性只是众多属性中的一小部分时Originator可以根据保存的Memo还原到前一状态。

 

/*** 行为型模型 备忘录模式* Memento模式也叫备忘录模式,是行为模式之一,它的作用是保存对象的内部状态,并在需要的时候(undo/rollback)恢复对象以前的状态。**/#define _CRT_SECURE_NO_WARNINGS#include <iostream>
#include <string>class MememTo
{
public:MememTo(std::string name, int age){m_name = name;m_age = age;}void setName(std::string name){m_name = name;}std::string getName(){return m_name;}void setAge(int age){m_age = age;}int getAge(){return m_age;}
private:std::string m_name;int m_age;
};class Person
{
public:Person(std::string name, int age){m_name = name;m_age = age;}void setName(std::string name){m_name = name;}std::string getName(){return m_name;}void setAge(int age){m_age = age;}int getAge(){return m_age;}void printT(){std::cout << "name: " << m_name << " age: " << m_age << std::endl;}// 创建备份MememTo * createMememTo(){return new MememTo(m_name, m_age);}// 恢复备份void SetMememTo(MememTo *mememto){m_name = mememto->getName();m_age = mememto->getAge();}private:std::string m_name;int m_age;
};// 管理者
class Caretaker
{
public:Caretaker(MememTo * mememto){m_mememto = mememto;}MememTo * getMememTo(){return m_mememto;}void setMememTo(MememTo *mememto){m_mememto = mememto;}
private:MememTo * m_mememto;
};void mytest()
{Person * p1 = new Person("张三", 18);p1->printT();// 创建备份MememTo *membak = p1->createMememTo();p1->setAge(28);p1->printT();// 恢复备份p1->SetMememTo(membak);p1->printT();delete p1;p1 = nullptr;delete membak;membak = nullptr;// 通过管理者进行备份恢复Person * p2 = new Person("李四", 25);p2->printT();// 创建备份Caretaker * ct = new Caretaker(p2->createMememTo());p2->setAge(29);p2->printT();// 恢复备份p2->SetMememTo(ct->getMememTo());p2->printT();delete p2;p2 = nullptr;delete ct->getMememTo();delete ct;ct = nullptr;return;
}int main()
{mytest();system("pause");return 0;
}

 

http://www.lbrq.cn/news/2655037.html

相关文章:

  • 企业网站开发的设计流程优化大师免费版下载
  • html5网站开发公司百度推广登录平台网址
  • 对网站建设的维护百度识图查图片
  • web.py做网站百度搜索引擎优化怎么做
  • 做个商城网站怎么做便宜吗网络营销活动案例
  • 国贸做网站的公司网站如何做seo推广
  • 日本手做网站深圳最好seo
  • 网站建设行业市场规模百度推广助手电脑版
  • 深圳市住房和建设工程交易网站seo源码
  • 浏览器怎么打开网站服务器设置b站推广链接
  • 手机苗木网站源码常州seo招聘
  • 百度网址名称是什么商品seo关键词优化
  • 青岛哪个网站建设公司价格低还能好一些网络营销的方式有几种
  • 怎样做网站的快捷方式网络营销推广策略有哪些
  • 赣州网站设计哪家强简述网站建设的流程
  • 哈尔滨房地产网站建设打开一个网站
  • 黄页引流推广网站软件免费百度指数
  • 建网站建设的基本流程今日热搜第一名
  • 网络代理是什么意思班级优化大师头像
  • 网站关键词优化到首页难度软件推广赚佣金渠道
  • 自搭建网站百度竞价代运营公司
  • 嘉定区网站建设公司营销网站建设大概费用
  • wordpress去除缓存石家庄百度seo
  • 网站结构优化怎么做软文推广平台有哪些
  • 有做lol直播网站本地网络seo公司
  • 菜鸟必读 网站被入侵后需做的检测 2广告推广方式
  • 团购做的好的网站营销网页
  • 郑州门户网站建设微信朋友圈广告
  • web前端怎么制作网站seo推广培训课程
  • 如何网站建设360推广登陆入口
  • windows上LM-Studio下载安装教程
  • 关于灰度图像相似度的损失函数(笔记)
  • 【世纪龙科技】数智重构车身实训-汽车车身测量虚拟实训软件
  • Docker 创建镜像错误记录
  • Java学习进阶--集合体系结构
  • C++线程库的学习