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

山西网站群建设湛江小程序开发公司

山西网站群建设,湛江小程序开发公司,开封市建设中专网站,360指数动机(Motivation) 在软件构建过程中,某些对象的状态在转换过程中,可能由于某种需要,要求程序能够回溯到对象之前处于某个点时的状态。如果使用一些公有接口来让其他对象得到对象的状态,便会暴露对象的细节…

动机(Motivation)

在软件构建过程中,某些对象的状态在转换过程中,可能由于某种需要,要求程序能够回溯到对象之前处于某个点时的状态。如果使用一些公有接口来让其他对象得到对象的状态,便会暴露对象的细节实现。

如何实现对象状态的良好保存与恢复?但同时又不会因此而破坏对象本身的封装性。

模式定义

在不破坏封装性的前提下,捕获一个对象的内部状态,并在该状态之外保存这份状态。这样以后就可以将该对象恢复到原先保存的状态。

示例


#include <string>
using namespace std;class Memento {string state;//...
public:Memento(const string& s) : state(s) {}string getState() const { return state; }void setState(const string& s) { state = s; }
};class Originator {string state;//...
public:Originator() {}Memento createMemento() {Memento m(state);return m;}void setMemento(const Memento& m) { state = m.getState(); }
};int main() {Originator originator;//捕获对象状态,存储到备忘录Memento m = originator.createMemento();//... 改变oroginator状态//从备忘录中恢复originator.setMemento(m);
}

要点总结

备忘录(Memento)存储原发器(Originator)对象内部状态,在需要时恢复原发器状态。

Memento模式的核心时信息隐藏,即Originator需要向外部隐藏信息,保持其封装性。但同时又需要将状态保存到外界(Memento)。

由于现在语言运行时(C#、Jave等)多具有相当的对象序列化支持,因此往往采用效率更高、又较容易正确实现的序列化方案来实现Memento模式。

http://www.yayakq.cn/news/584439/

相关文章:

  • 创建虚拟网站做点击wordpress中英双语
  • 网站支付模块山东济南seo整站优化公司
  • 做网站要找本地的吗企业网站建设的策划书
  • 查看本分行企业网站排名优化
  • 深圳网站制作公司讯息国内网站建设的趋势是怎样的
  • 建设官方网站的好处和坏处京东的网站建设规划
  • 网站建设国外软文经典案例
  • 大气企业网站源码曹鹏wordpress
  • 无锡网站建设方案维护google seo实战教程
  • 无极app定制开发公司网站模板wordpress旅游模板
  • 怎么学做淘宝电商网站eyoucms去版权
  • wordpress修改ip深圳优化网站排名软件
  • 网站如何改造wap妇产科网站建设
  • 东莞建设网站官网登录网站域名注册需要什么手续
  • 建站网站哪个好北京网站建设 招聘信息
  • 摄影婚纱官网网站推广优化教程
  • 电子商务都包括什么网站搜索排优化怎么做
  • 南昌有什么网站站长之家html
  • 洛阳瀍河建设局网站安徽住房与城乡建设门户网站
  • 金光华网站建设推广关键词优化公司
  • 建网站建设网页心得体会400字
  • 大连网站排名公司wordpress块引用美化
  • 北京西站官网主页建网站不做广告怎么赚钱
  • 做ppt网站有哪些内容房屋网签查询系统官方网站
  • 网站正在建设中图片承德哪里做网站
  • 团队网站怎么做shopex官方网站论坛
  • 网上做兼职的网站有哪些企业网站的目的
  • 佛山市手机网站建设公司跨境电商开发流程
  • 淘宝客怎么建网站创意网站建设设计公司
  • 网站域名跳转怎么做产品设计专业大学排名