位置: 编程技术 - 正文

学习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设计模型)

  • 流转税具体的账务处理,可以怎样考虑?
  • 个人出租汽车
  • 个税返还手续费增值税申报填在哪里
  • 进项税额怎么计算例题
  • 公司之间借款如何做账
  • 公对公转账在手机上怎么操作
  • 怎么算毛利润计算公式
  • 税后平均投资利息怎么算
  • 交文化事业建设费的行业
  • 企业购买房产每年需要交什么税
  • 增值税销项税额影响入账金额吗
  • 商业企业能否计税
  • 合并报表固定资产抵消通俗理解
  • 跨月的普票怎么作废从系统里作废
  • 购税控盘账务处理
  • 销售加工费怎么做账务处理
  • 拆迁补偿款使用范围
  • 个人所得税申报退税的条件
  • 为什么增值税发票税率是1%
  • 房地产企业收到定金 什么时候交增值税 账务处理
  • 第三方支付模式的交流流程
  • 房地产企业的非流动资产周转率在多少以上
  • 稽查查补的税款可以享受即征即退吗
  • 研发费用发票怎么入账
  • safedownloader是什么
  • 若依前后端分离需要准备啥
  • 怎么做win8系统u盘pe
  • steam怎么退款申请退款要多久
  • 期间费用属于间接生产费用吗
  • 公积金补缴需要去柜台吗
  • 用银行存款支付本季度短期借款利息
  • php调用soap
  • hottray.exe是什么进程 有什么作用 hottray进程查询
  • 多伦多日照时间
  • PHP:imagecolormatch()的用法_GD库图像处理函数
  • 企业向个人借款是否合法
  • 行政事业单位怎么开发票
  • 小企业会计准则适用于哪些企业
  • 研发和技术服务税率由6%变为3%
  • 2021前端面试大全
  • php array_slice 取出数组中的一段序列实例
  • ajax自动带cookie
  • 金税盘白盘怎么分发发票
  • Using Visual Leak Detector
  • 怎么调整以前年度
  • 收到投资款怎么做账
  • php框架 hyperf
  • 现金流量表中的现金流量包括哪些
  • dedecms使用教程
  • tempdb数据库能删么
  • 合理的物料消耗是指
  • 收到工程进度款怎么做分录
  • 转让土地及地上建筑物涉及的税金
  • 自建不动产领用原材料增值税进项
  • 子公司注销母公司长投账务处理
  • 总分机构和分总机构的区别
  • c# mysql实例
  • sqlserver 触发器 redis
  • sqlserver临时表 效率
  • win8系统升级win8.1
  • win10系统微软账号退不了怎么办
  • xp系统怎么弄成win7
  • server2003定时任务
  • win8系统简介
  • windows7家长控制
  • Windows 8 Modern Apps 网络隔离如何解除?
  • linux创建vg
  • WIN7系统屏幕亮度哪里设置
  • win7开机提示重启怎么办
  • js cocos
  • perl中打开文件
  • android刷新activity
  • django的url
  • 发票单位可以开一批吗?
  • 虚开增值税发票但未抵扣怎样处罚
  • 深圳市国家税务局赵雨婷
  • 红星新闻河南郑州
  • 加油账单怎么查询
  • 中级财务管理好难
  • 中国十大经济农村
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设