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

鹰潭房产网站建设关键路径

鹰潭房产网站建设,关键路径,江苏省泰州市建设局官方网站,wordpress guge概念 备忘录模式是一种行为型设计模式,用于捕获和存储对象的内部状态,并在需要时将对象恢复到之前的状态。 备忘录模式允许在不暴露对象内部实现细节的情况下,对对象进行状态的保存和恢复。 角色介绍 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.shuangfujiaoyu.com/news/46945.html

相关文章:

  • 南京百度网站建设今天国内最新消息
  • 网站建设 南京淘宝seo搜索优化
  • 中山商城型网站建设网站建设包括哪些内容
  • 企业型网站怎么做郑州今日重大新闻
  • 北京网站建设分析论文金泉网做网站多少钱
  • 银川做网站设计的公司seo推广编辑
  • asp.net mvc5网站开发之美网站排名优化培训哪家好
  • 做销售网站的公司哪家最好推广app拉人头赚钱
  • 不限空间的免费网站产品如何在网上推广
  • 做网站哪家靠谱友情链接样式
  • 门户设计理念北京seoqq群
  • 集团网站设计特性商业推广
  • 上海刚刚发生的大事西安关键词排名优化
  • 上海做网站那家好域名注册信息怎么查
  • 厦门模板做网站企业微信营销管理软件
  • 网页显示网站正在建设中怎么做怎么样把自己的产品网上推广
  • 云虚拟主机可以做多少个网站sem推广竞价托管
  • 网站seo置顶 乐云践新专家今日中国新闻
  • 自己做网站要学前端和后端系统优化软件哪个最好的
  • 南通做网站优化哪家好百度推广开户费用
  • 做网站凡科如何金昌网站seo
  • 网站建设结构设计小程序运营推广公司
  • 如何入驻微信小程序杭州seo靠谱
  • WordPress外链自动转内链网络seo营销推广
  • 外贸汽车配件做那个网站链接买卖
  • 网站开发逻辑图网站编辑
  • 免费做长图网站晋中网络推广
  • 学做网站用谁的书链友之家
  • 濮阳网站怎么做seo网上推广怎么弄?
  • 竞价托管哪家专业越秀seo搜索引擎优化