位置: 编程技术 - 正文

学习php设计模式 php实现原型模式(prototype)(php 设计模式 鸟哥)

编辑:rootadmin

推荐整理分享学习php设计模式 php实现原型模式(prototype)(php 设计模式 鸟哥),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php设计模式及使用场景,php 设计模式 鸟哥,php设计模式及使用场景,php常见设计模式和用途,php23种设计模式,php 设计模式 鸟哥,php 设计模式 鸟哥,php 设计模式 鸟哥,内容如对您有帮助,希望把文章链接给更多的朋友!

一、意图用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象二、原型模式结构图

三、原型模式中主要角色抽象原型(Prototype)角色:声明一个克隆自身的接口

具体原型(Concrete Prototype)角色:实现一个克隆自身的操作

四、原型模式的优点和缺点Prototype模式优点:1、可以在运行时刻增加和删除产品2、可以改变值以指定新对象3、可以改变结构以指定新对象4、减少子类的构造5、用类动态配置应用

Prototype模式的缺点:Prototype模式的最主要缺点就是每一个类必须配备一个克隆方法。而且这个克隆方法需要对类的功能进行通盘考虑,这对全新的类来说不是很难,但对已有的类进行改造时,不一定是件容易的事。

学习php设计模式 php实现原型模式(prototype)(php 设计模式 鸟哥)

五、原型模式适用场景1、当一个系统应该独立于它的产品创建、构成和表示时,要使用Prototype模式2、当要实例化的类是在运行时刻指定时,例如动态加载3、为了避免创建一个与产品类层次平等的工厂类层次时;4、当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些

六、原型模式与其它模式

抽象工厂模式(abstract factory模式):Abstract Factory模式与Prototype模式在某种方面是相互竞争的,但是也可以一起使用。

七、原型模式PHP示例

补充:浅拷贝与深拷贝

浅拷贝被拷贝对象的所有变量都含有与原对象相同的值,而且对其他对象的引用仍然是指向原来的对象。即 浅拷贝只负责当前对象实例,对引用的对象不做拷贝。

深拷贝被拷贝对象的所有的变量都含有与原来对象相同的值,除了那些引用其他对象的变量。那些引用其他对象的变量将指向一个被拷贝的新对象,而不再是原有那些被引用对象。即 深拷贝把要拷贝的对象所引用的对象也都拷贝了一次,而这种对被引用到的对象拷贝叫做间接拷贝。深拷贝要深入到多少层,是一个不确定的问题。在决定以深拷贝的方式拷贝一个对象的时候,必须决定对间接拷贝的对象是采取浅拷贝还是深拷贝还是继续采用深拷贝。因此,在采取深拷贝时,需要决定多深才算深。此外,在深拷贝的过程中,很可能会出现循环引用的问题。

利用序列化来做深拷贝利用序列化来做深拷贝,把对象写到流里的过程是序列化(Serilization)过程,但在业界又将串行化这一过程形象的称为“冷冻”或“腌咸菜”过程;而把对象从流中读出来的过程则叫做反序列化(Deserialization)过程,也称为“解冻”或“回鲜”过程。在PHP中使用serialize和unserialize函数实现序列化和反序列化。

在上面的代码中的注释就是一个先序列化再反序列化实现深拷贝的过程。

标签: php 设计模式 鸟哥

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

上一篇:PHP中Enum(枚举)用法实例详解(php枚举类)

下一篇:学习php设计模式 php实现工厂模式(factory)(php设计模型)

  • 税务行政诉讼是由税务机关进行审理并作出裁决
  • 如何做好存货管理,从哪方面去做
  • 什么情况企业需要经侦
  • 不需要缴纳税款和服役的是形势户寺观户
  • 开了农民工资金专户必须使用吗
  • 社保计入主营业务成本
  • 小企业会计准则调整以前年度费用分录
  • 关联方债务豁免需要缴纳所得税吗
  • 预付账款怎么处理
  • 存货报废需要进项转出吗
  • 小企业准则固定资产折旧每月折旧多折了
  • 费用类都有哪些账户
  • 利润表中利润总额是什么
  • 企业公益性捐赠支出税前扣除标准
  • 公户转到老板私人账户
  • 出租车行业怎么银行贷款
  • 应交增值税和未交增值税是一个科目吗
  • 个人取得下列各项所得须自行申报纳税的有
  • 单位年底发放的补助
  • 其他应付款可以用其他应收款代替吗
  • 开票的时候开票人是管理员
  • 生育津贴计入应付职工薪酬吗
  • 工厂材料成本改善报告范文
  • 2021发票勾选认证
  • 一次性收取的房租需要按月纳增值税吗
  • 存货损失进项税
  • 应付票据贴现息计入
  • php serialize
  • 检验费用会计分录
  • 房地产企业前期物业费
  • windows 7怎么打开虚拟化
  • 电脑自动更新系统
  • PHP:mb_send_mail()的用法_mbstring函数
  • 计提房租记什么科目
  • pc应用是什么意思
  • 认缴制注册资金怎么处理账务
  • 工业企业采购供应管理
  • 企业一次性取得所得税
  • php中实现文件上传需要用到哪几个函数
  • tr命令详解
  • 公司购买的商品房怎么入账
  • phpcms模板制作教程
  • 公司活动赠送小礼品
  • 财务报告与财务思维
  • 经营性应收项目的减少调增 为什么是减
  • 房地产按揭贷款政策
  • 实际开票金额和转账金额不一致怎么做
  • 另一种收到企业信息英文
  • 购进材料,已付,材料尚未验收入库
  • 出纳去银行取钱需要带什么
  • 企业储蓄存款如何做账
  • 印花税是怎么缴纳
  • 股权转让,受让方的会计分录
  • 商业承兑汇票如何承兑?
  • 外籍人员个税汇算清缴流程
  • 销售收入指开票金额吗
  • 给个人的销售返现合法吗
  • 最全的免费追漫软件
  • MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要区别整理
  • 购物车功能实现思路
  • win7盘符不见了
  • win8.1关机没反应
  • 电脑开机显示xp后无反应
  • freebsd查看路由
  • usbmonit.exe - usbmonit是什么进程
  • xp无法访问win7电脑
  • win10微软更新
  • cocos开发android游戏
  • 天天数链是做什么的
  • 服务器自动关机什么原因
  • innertext赋值
  • python算法的应用
  • shell语言的特点
  • android实时获取微信聊天信息
  • 粮食的增值税税率怎么算
  • 青岛崂山区税务局官网
  • 个人所得税核定征收的政策
  • 地税局收税标准
  • 代理记账年费多少钱
  • 发票验旧后还能开票吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设