位置: 编程技术 - 正文

学习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库(作为一名程序员应该掌握哪些语言)

  • 应交增值税是什么意思
  • 合伙企业税务筹划点
  • 增值税专用发票抵扣期限
  • 金税四期对建筑的影响
  • 预付的成本票计入什么科目?
  • 培训机构财务怎么做账
  • 微信收款和支付宝收款有啥区别
  • 2020年国税申报截止到什么时候
  • 生产成本结转主营业务成本本币公式怎么弄
  • 小规模纳税人无进项票怎么办
  • 工伤医疗费用个人社保卡支付找谁报销
  • 职工福利企业所得税
  • 善意取得增值税专用发票如何处理
  • 临时售楼处要考虑消防吗
  • 抵押车贷款会不会扣车
  • 单位发生的业务怎么做账
  • 费用科目如何结转
  • 免税和不免税的价格区别
  • 季度所得税申报表营业收入怎么填
  • 一般纳税人开普票税率是多少
  • 半年付一次房租,房东一般提前多长时间催租
  • 无形资产的入账价值包括宣传费吗
  • 固定资产弃置费用预计负债
  • 报销误餐费会计怎么做账
  • 合作社人工工资账务处理
  • win10卸载deepin
  • harmonyos怎么打开OTG
  • 电脑不支持cpu
  • 履约保证金计入什么会计科目
  • 工会经费是不是应付职工薪酬
  • 广告制作费属于劳务还是服务
  • 公司回购股份有什么好处
  • 存货丢失取得赔偿
  • ipad哪款最贵
  • cesium加载s3m
  • 知乎百万大v
  • 工业企业应付账款周转率多少合适
  • 暂估入账的固定资产可以计提折旧吗
  • 对公贷款利息支付
  • java开发和运维
  • 浅谈人工智能时代财务会计向管理会计的转型
  • wordpress安装包
  • 防伪税控技术服务费订单号怎么查
  • 三个数排序c语言程序从大到小
  • sQlite常用语句以及sQlite developer的使用与注册
  • mongodb bi
  • 工会筹备金和工会经费滞纳金计算一样吗
  • 钢管扣件租赁公司账务处理
  • 公司购买床垫如何做账
  • 加油充值卡开票内容是什么
  • 企业购进的固定资产
  • 公司法人借款给企业属于关联交易吗?
  • 分公司第二季度总结报告
  • 对于资产负债表日后的非调整事项
  • mysql与oracle的区别
  • services.exe修改注册表
  • phpstudy中phpmyadmin无法访问
  • ie11怎么打开ie8
  • linux svn操作
  • pb程序是什么
  • winxp使用到什么时候
  • mac如何搜索应用
  • cocos2dx入门
  • java 解析javascript
  • opengl glu
  • shell中echo命令详解
  • python的异常处理语句
  • js窗口关闭触发事件
  • javascript tr
  • android隐藏
  • javascript获取浏览器代理设置
  • 老司机指的是
  • 什么是城建税和土地税
  • 加油站怎么收税
  • 河南税务总局发票查询
  • 棚改房办房产证用不用交费
  • 建筑劳务个人所得税申报
  • 江苏省电子税务局电话
  • 乡镇四所是指哪些所
  • 查询产品真伪怎么查询app
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设