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

怎么开发微信网站谷歌广告上海有限公司官网

怎么开发微信网站,谷歌广告上海有限公司官网,网站 设计 语言,萧山最新疫情概念 备忘录模式是一种行为型设计模式,用于捕获和存储对象的内部状态,并在需要时将对象恢复到之前的状态。 备忘录模式允许在不暴露对象内部实现细节的情况下,对对象进行状态的保存和恢复。 角色介绍 Originator:原发器&#x…

概念

备忘录模式是一种行为型设计模式,用于捕获和存储对象的内部状态,并在需要时将对象恢复到之前的状态。
备忘录模式允许在不暴露对象内部实现细节的情况下,对对象进行状态的保存和恢复。

角色介绍

  • Originator:原发器,负责创建备忘录对象,并将其当前状态保存到备忘录中,也可以从备忘录中恢复自身状态。
  • Memento:备忘录,用于存储发起人的状态,通常具备对发起人状态的访问权限。
  • Caretaker:管理者,负责管理备忘录对象,可以保存多个备忘录对象,并在需要时将其提供给发起人进行状态的恢复。

UML

备忘录

代码实现

/*** 备忘录*/
data class Memento(val state: String? = null
)/*** 原发器*/
class Originator {var state: String? = nullfun save(): Memento {return Memento(state)}fun recover(memento: Memento) {state = memento.state}}/*** 看管人*/
class Caretaker {private val mementos = ArrayList<Memento>()fun addMemento(memento: Memento) {mementos.add(memento)}fun getMemento(i: Int): Memento {return mementos[i]}
}fun main() {val originator = Originator()val caretaker = Caretaker()originator.state = "State#1"originator.state = "State#2"caretaker.addMemento(originator.save())originator.state = "State#3"caretaker.addMemento(originator.save())originator.state = "State#4"println("Current State:${originator.state}")originator.recover(caretaker.getMemento(0))println("0 State:${originator.state}")originator.recover(caretaker.getMemento(1))println("1 State:${originator.state}")
}

优缺点

优点

  • 封装性
  • 简易恢复和撤销
  • 简化发起人
    缺点
  • 增加内存使用
  • 性能开销
  • 复杂性

应用场景

适用于需要维护对象状态的历史记录,而不想暴露复杂的内部状态。

  • 文本编辑器
  • 绘图应用程序
  • 数据库系统
  • 游戏开发
  • 版本控制系统

总结

备忘录适用于需要保存/恢复数据的相关状态场景,并提供一个可回滚的操作。
为了符合迪米特原则,还需增加一个管理备忘录的类;为了节省内容可使用配合原型模式使用。

参考:

  • https://www.cnblogs.com/jiangzhaowei/p/7287359.html
  • https://www.runoob.com/design-pattern/memento-pattern.html
  • https://www.cnblogs.com/cativen/p/16641173.html
http://www.tj-hxxt.cn/news/102062.html

相关文章:

  • 医院网站必须建设吗百度网盘资源链接入口
  • 烤漆 东莞网站建设优化网站排名公司
  • 签到 做任务赚钱的网站百度推广竞价技巧
  • 网站如何做自适应公关公司排行榜
  • 网格系统网站营销管理系统
  • 网站建设专家论证会网站浏览器
  • 阳泉网站建设哪家便宜seo排名优化关键词
  • 网络系统开发佛山百度网站排名优化
  • 天津网上商城网站建设1小时快速搭建网站
  • 政务网站建设的三大核心功能是什么渠道推广
  • lindberg定制网站爱站网关键词挖掘
  • 建网站做淘宝客赚钱吗百度世界排名
  • 平安保险网站官方网址网站排名查询工具有哪些
  • 更改wordpress链接数据库工具seo
  • sql网站发布流程百度指数是什么
  • 中国建设社银行招聘网站百度搜索排名优化
  • 网站首页图怎么做交换链接营销的典型案例
  • 佛山市门户网站建设公司上海怎么做seo推广
  • 做商城网站费用百度关键词竞价
  • 邢台网站建设 冀icp备日照网络推广公司
  • 做海报有什么好的网站推荐清理大师
  • 建设网站如何加入搜索百度app下载链接
  • 二手车网站源码下载怎么在百度做网站推广
  • 网站开发宣传图片google谷歌搜索引擎入口
  • 做网站需要哪种工程师sem竞价托管多少钱
  • 写作网站招聘企业文化培训
  • 做机械加工外贸网站哪家好百度指数查询平台
  • 佛山网站优化排名推广建网站的公司排名
  • 查钓鱼网站seo网络排名优化方法
  • 建设部网站办事大厅栏目数字经济发展情况报告