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

这周新闻热点事件南宁seo公司哪家好

这周新闻热点事件,南宁seo公司哪家好,网站高端网站建设,哈尔滨最好的网站建设公司🚀简介 备忘录模式(Memento Pattern)是一种行为型设计模式,它保存一个对象的某个状态,以便在适当的时候恢复对象。所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象…

🚀简介

备忘录模式(Memento Pattern)是一种行为型设计模式,它保存一个对象的某个状态,以便在适当的时候恢复对象。所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样我们就可以在需要的时候将该对象恢复到原先保存的状态 。

备忘录模式的主要角色如下:
  1. 发起人(Originator)角色:记录当前时刻的内部状态信息,提供创建备忘录和恢复备忘录数据的功能,实现其他业务功能,它可以访问备忘录里的所有信息。
  2. 备忘录(Memento)角色:负责存储发起人的内部状态,在需要的时候提供这些内部状态给发起人。
  3. 管理者(Caretaker)角色:对备忘录进行管理,提供保存与获取备忘录的功能,但其不能对备忘录的内容进行访问与修改。

🚀案例

🐤发起人(Originator)角色

首先,我们创建一个Originator类,它有一个内部状态State和一个Memento对象来保存状态。

public class Originator
{private string _state;public void Set(string state){_state = state;}public Memento SaveToMemento(){return new Memento(_state);}public void GetFromMemento(Memento memento){_state = memento.GetState();}public string GetState(){return _state;}
}

🐤备忘录(Memento)角色

然后,我们创建一个Memento类,它包含一个内部状态State

public class Memento
{private readonly string _state;public Memento(string state){_state = state;}public string GetState(){return _state;}
}

🐤管理者(Caretaker)角色

接下来,我们创建一个Caretaker类,它负责保存和获取Memento对象。

public class Caretaker
{private readonly Stack<Memento> _mementoStack = new Stack<Memento>();public void Add(Memento state){_mementoStack.Push(state);}public Memento Get(){return _mementoStack.Pop();}
}

🐳测试类

class MyClass
{public static void Main(string[] args){Originator originator = new Originator();Caretaker caretaker = new Caretaker();originator.Set("State #1");caretaker.Add(originator.SaveToMemento());originator.Set("State #2");caretaker.Add(originator.SaveToMemento());originator.Set("State #3");caretaker.Add(originator.SaveToMemento());originator.GetFromMemento(caretaker.Get());Console.WriteLine("Current State: " + originator.GetState());originator.GetFromMemento(caretaker.Get());Console.WriteLine("Current State: " + originator.GetState());}
}

👻运行结果!

🚀优缺点

优点:
  1. 提供了一种可以恢复状态的机制。当用户需要时能够比较方便地将数据恢复到某个历史的状态。
  2. 实现了内部状态的封装。除了创建它的发起人之外,其他对象都不能够访问这些状态信息。
  3. 简化了发起人类。发起人不需要管理和保存其内部状态的各个备份,所有状态信息都保存在备忘录中,并由管理者进行管理,这符合单一职责原则。
缺点:
  • 资源消耗大。如果要保存的内部状态信息过多或者特别频繁,将会占用比较大的内存资源。
使用场景:
  • 需要保存与恢复数据的场景,如玩游戏时的中间结果的存档功能。
  • 需要提供一个可回滚操作的场景,如 Word、记事本、Photoshopidea等软件在编辑时按Ctrl+Z 组合键,还有数据库中事务操作。
http://www.mnyf.cn/news/194.html

相关文章:

  • 别人做的网站不能用了今日新闻简报
  • 英文网站如何做关键词sem是什么
  • redis网站开发教程在哪里可以做百度推广
  • 做企业网站的意义山东seo推广公司
  • 北京小程序开发平台seo检测优化
  • 做网站的价位googleseo推广
  • 怎么把淘宝店放到自己做的网站去国际新闻界官网
  • 为国外客户做网站建设百度网页版登录首页
  • 前端怎么做自己的博客网站巩义网站优化公司
  • 网站建设与规划实训总结线下引流推广方法
  • 建筑装饰公司做网站的作用友情链接交换形式有哪些
  • 学做网站php有哪些可以推广的平台
  • 查做外贸客户的网站北京环球影城每日客流怎么看
  • 郑州网站优化公司电话2023年7 8月十大新闻
  • 建筑人才网简历真实吗更先进的seo服务
  • 做期货看资讯什么网站好中国新闻最新消息今天
  • 小榄网站建设郑州网络推广排名
  • 网站提交百度收录长沙官网seo技术厂家
  • 泰州腾讯网站开发如何做好网络营销?
  • 高端网站制作公司aso优化师
  • 做养生网站需要证件吗网页生成app
  • wordpress花生壳lamp广州网站营销seo
  • 3维网站制作技术销售平台
  • 公司做网站哪个公司做得好引擎优化是什么工作
  • 免费h5页面制作软件seo搜索引擎优化是什么
  • 培训app的制作网站的优化策略方案
  • 深圳建网站网站建设公司是怎么找客户
  • 徐州网站建设多少钱win10优化软件哪个好
  • 电子商务网站建设的一般流程2024年8月爆发新的大流行病毒吗
  • 手机logo在线制作 免费谷歌优化怎么做