位置: 编程技术 - 正文

学习php设计模式 php实现备忘录模式(Memento)(php 设计模式)

编辑:rootadmin

推荐整理分享学习php设计模式 php实现备忘录模式(Memento)(php 设计模式),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php设计模型,php常用的设计模式在开发中的实例,php常见设计模式和用途,php常见设计模式和用途,php 设计模式,php设计模式六大原则,php设计模式及使用场景,php设计模式六大原则,内容如对您有帮助,希望把文章链接给更多的朋友!

学习php设计模式 php实现备忘录模式(Memento)(php 设计模式)

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

二、备忘录模式结构图

三、备忘录模式中主要角色1、备忘录(Memento)角色:存储发起人(Originator)对象的内部状态,而发起人根据需要决定备忘录存储发起人的哪些内部状态。备忘录可以保护其内容不被发起人(Originator)对象之外的任何对象所读取。2、发起人(Originator)角色:创建一个含有当前的内部状态的备忘录对象使用备忘录对象存储其内部状态3、负责人(Caretaker)角色:负责保存备忘录对象,不检查备忘录对象的内容四、备忘录模式的优点和缺点备忘录模式的优点:1、有时一些发起人对象的内部信息必须保存在发起人对象以外的地方,但是必须要由发起人对象自己读取。2、简化了发起人(Originator)类。发起人(Originator)不再需要管理和保存其内部状态的一个个版本,客户端可以自行管理它们所需要的这些状态的版本3、当发起人角色的状态改变的时候,有可能这个状态无效,这时候就可以使用暂时存储起来的备忘录将状态复原。备忘录模式的缺点:1、如果发起人角色的状态需要完整地存储到备忘录对象中,那么在资源消耗上面备忘录对象会很昂贵。2、当负责人角色将一个备忘录存储起来的时候,负责人可能并不知道这个状态会占用多大的存储空间,从而无法提醒用户一个操作是否会很昂贵。3、当发起人角色的状态改变的时候,有可能这个状态无效。五、备忘录模式适用场景1、必须保存一个对象在某一个时刻的(部分)状态,这样以后需要时它才能恢复到先前的状态。2、如果一个用接口来让其它对象直接得到这些状态,将会暴露对象的实现细节并破坏对象的封装性。六、备忘录模式与其它模式1、命令模式(command模式):Command模式也可以用来恢复对象的状态,一般Command模式可以支持多级状态的回滚,Memento只是简单的恢复(快照)。在Command模式的每一个undo中,可以使用Memento来保存对象的状态。2、迭代器模式(Iterator模式):备忘录可以用于迭代七、备忘录模式PHP示例

标签: php 设计模式

本文链接地址:https://www.jiuchutong.com/biancheng/281561.html 转载请保留说明!

上一篇:学习php设计模式 php实现观察者模式(Observer)(php设计思路)

下一篇:作为程序员必知的16个最佳PHP库(作为一名程序员应该掌握哪些语言)

  • 跨月发票税率开错了如何处理合适?
  • 城建税的征税范围不包括农村对不对
  • 生产成本明细科目是材料还是产品
  • 机械设备租赁印花税谁交
  • 其他应付款是不是长期负债
  • 物流辅助服务属于什么费用
  • 合同租金总收入怎么填
  • 医药零售行业 利润构成
  • 二手房如何缴纳契税
  • 银行汇票应计入什么科目
  • 企业税收滞纳金计入什么科目
  • 奖励给优质供应商会计处理怎么做?
  • 资产负债表和利润表和现金流量表的关系
  • 如何异地缴纳个人医保
  • 广告制作费属于现代服务吗
  • 旅游地产房产税
  • 增值税发票抵扣期限最新规定
  • 广告代理服务计入什么费用
  • 工会财务任务是什么
  • 同一控制下合并对价怎么算
  • 装载u盘
  • mac安装软件提示需要更高版本
  • 广告补贴申请报告
  • 建筑业预缴企业所得税税率是多少
  • win10的病毒隔离有用吗
  • 固定资产折旧表述不正确的是
  • php数组函数 菜鸟
  • 微信公众号实名认证怎么更改
  • 小规模纳税人的企业所得税税率
  • php curl_setopt
  • 免税是政府补助吗
  • 以银行存款支付业务招待费
  • 多模态 融合
  • addr指令
  • 前期认证相符
  • 社保可以不计提直接缴纳吗
  • 暂估入库结转成本税务规定
  • 研发失败的费用允许加计扣除吗
  • mysql常见操作
  • 织梦怎么用
  • 营改增后房地产开发税费一览表
  • 小规模纳税人的个人所得税怎么算
  • 发票金额是含税价还是不含税价
  • 增值税发票已抵扣怎么红冲
  • 工会经费余额在借方还是贷方
  • 按月缴纳增值税的纳税人申报期限为计算期次月的( )
  • 个税征税对象包括哪些
  • 个人开技术服务费
  • 速动比率例子
  • 现金日记账定金怎么算
  • 用信用卡消费扣谁的手续费
  • 提供劳务方式是什么意思
  • 隔月红票怎么开
  • 房租增值税专用发票可以抵扣吗
  • 实际开票金额比外经证金额大
  • 进项税额有抵扣期限吗
  • 电脑买了四个月折旧多少
  • 医疗器械行业进货未取得发票怎么做会计分录的
  • 什么叫社保差额调整
  • 各单位应当根据需要设立专职或者兼职
  • mysql实现分页查询
  • sql数据库检查命令
  • linux常用帮助命令
  • 为快捷方式建立快捷方式
  • window资源管理器
  • mom.exe是什么进程
  • 如何判断win7
  • win7的记事本在哪里打开
  • win10系统如何删除用户账户
  • cocos2dx 3.5 ”hello world“解析
  • perl怎么用
  • 如何用jquery
  • xp系统explorer停止工作
  • python利用csv模块在对csv文件进行操作
  • python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
  • 骞怎么读什么意思是什么
  • Javascript & DHTML 实例编程(教程)基础知识
  • js滚动条滚动触发事件
  • jquery form validate
  • 广州市税务局副局长陈忠文
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设