位置: 编程技术 - 正文

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

  • 差额征税的会计处理方法
  • 出租房屋转为投资房屋
  • 企业所得税汇算清缴时间
  • 盘盈固定资产明细账怎么填写?
  • 收到的加盟费要交税吗
  • 收到上月保险赔偿款分录
  • 未满一年的公司可以注销吗
  • 领备用金填什么单子
  • 未签购销合同需不需要印花税
  • 个人独资企业有章程没有
  • 高危行业企业安全费用提取
  • 税务稽查可否清算土地增值税
  • 高速公路通行费电子发票怎么打印
  • 购入材料过程中支付运费
  • 企业营改增后的会计处理有何变化
  • 销售货物的运费增值税计入什么科目
  • 转让土地使用权一般计税方法
  • 人工材料成本怎么分配
  • 车间管理人员工资总额占车间工资总额的10%
  • 二手车融资租赁公司
  • 租别人厂房土地税房产税怎么交
  • 没超过标准的招待费缴税吗
  • 小规模纳税人月收入超过10万,要交多少税
  • 租金收入未收到 税法规定
  • 销售返利的税务政策
  • 开进来的发票冲红怎么处理?
  • 金税盘开票怎么改成含税金额
  • 特殊业务分录
  • 本月应该确认收入,但是一般下月才开票该怎么处理?
  • 转让无形资产所有权计入什么科目
  • 给子公司拨款怎么记账
  • 非关联企业无偿拆借资金企业所得税
  • 幼儿园资金收支管理财务制度
  • 小型微利企业所得税率
  • windows10一直刷屏
  • sessmgr.exe - sessmgr是什么进程 有什么用
  • 预收账款什么时候确认增值税
  • php数组转js数组
  • 承接旅游业务
  • vue中使用md5加密
  • 股东分红应该在哪个科目
  • 长期待摊费计入哪个科目
  • php array_slice 取出数组中的一段序列实例
  • Yii2实现同时搜索多个字段的方法
  • 原材料用于在建工程增值税如何处理
  • jsp标签大全
  • 绿化公司属于哪个行业
  • 从网上学电脑下载什么软件
  • 发票可以开未来日期吗
  • mysql 连接语句
  • 购买固定资产发生的支出是资本性支出
  • 年终奖可以不计入社保基数吗
  • 律师事务所的所属行业是什么
  • 服务业税率表
  • 递延所得税资产和负债怎么理解
  • 出口货物 增值税
  • 商贸公司经营范围可以写烟酒吗
  • 租的办公室装修费怎么处理
  • 防洪费的税率是多少
  • 采购入库单如何弃审U8
  • 给外国公司开发票有什么涉税风险
  • 个体从业人数怎么填
  • 旅游业营业税税率
  • Windows Server core的便捷操作和远程管理
  • 用U盘安装系统重启后进不去
  • win8如何关闭杀毒软件
  • mplugin.exe是什么
  • Linux下OpenVPN配置静态密钥(static-key)验证教程
  • Win10 Mobile 10586.107怎么更新?Lumia950/XL/550可升级
  • jframe背景透明
  • python打开命令行
  • tree 怎么用
  • nodejs怎么使用
  • python编写步骤
  • unity3d脚本怎么用
  • 详解Javascript事件驱动编程
  • python中url
  • 怀化市税务局领导
  • 局党组中心组成员
  • 2022年车船税减半政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设