位置: 编程技术 - 正文

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

  • 购买土地缴纳的费用
  • 房地产开发企业土地增值税预缴
  • 出口退税中哪些是免税的
  • 金税三期个人所得税税率
  • 社保按基数交工资按时发怎么做账
  • 如何开增值税专用发票视频
  • 核定征收企业需要做账吗
  • 返利销售增值税
  • 个人代开房租普票需要缴纳哪些税种?
  • 融资租入固定资产属于资产吗
  • 电子缴税付款凭证怎么做账
  • 企业未能实施个人所得税代扣代缴是否会罚款呢?
  • 金蝶固定资产管理
  • 进口货物的价格国内销售需要考虑的税
  • 工厂报废的产品价格有规定吗
  • 车间不生产时折旧怎么算
  • 库存生产用钢材属于什么会计科目类别
  • 企业所得税费用税率
  • 税负率是税率吗
  • 企业作为股东分红上税吗怎么算
  • 分公司亏损还会分摊所得税吗
  • 季度申报所得税是按累计上缴吗
  • 公司个人所得税怎么申报
  • 房租的应收必须交吗
  • 薪酬费用属于什么科目
  • 冲红的进项税发票入账处理
  • 行政单位发票报销的签字程序
  • 融资租赁纳税人是指
  • 如何准确区分不动产租赁和仓储服务?
  • 购买烟酒送人是否需要纳税
  • 在windows 7中
  • PHP:mb_ereg_search_setpos()的用法_mbstring函数
  • 月末结转未分配利润吗
  • php socket_read
  • 增值税专票跨月但未认证,怎么作废
  • 社保缴纳基数相差多少
  • 企业法人看病费用能报销吗
  • 鹤望兰的养殖方法和注意事项浇水
  • 存货捐赠视同销售的会计分录怎么做?
  • 餐厅手撕发票
  • 深度学习中的FPN详解
  • react extend
  • redis常见问题解决
  • uname命令功能
  • Google C++ Style中允许使用的Boost库(1) 程序即人生 博客频道 CSDN.NET
  • 美团算钱
  • 帝国cms视频教程
  • 劳务公司社保手续办理
  • 上一年的成本没入账怎么做
  • 成本费用利润率越高越好吗
  • sqlserver如何锁表
  • 利息收入应该怎么记账
  • 暂估主营业务成本怎么冲销
  • 办公用品开普票几个点
  • 用货物抵债如何入账
  • 虚开发票要如何处理?
  • 公司向个人借款的会计分录怎么做
  • 预付卡销售和充值怎么做账
  • 无形资产摊销的会计科目怎么录
  • 港口建设费收费标准
  • 在企业中的应用
  • winxp系统安装教程
  • Vista、XP、Windows7下非会员如何去除QQ2009的广告
  • ubuntu怎么解压缩文件
  • centos 安装
  • windows7网速慢怎么解决
  • win7系统怎么设置开机启动项
  • 带上Windows 8去旅行 让你的旅途更轻松
  • win10升级准备就绪需要多久
  • mx1014
  • opengl光照效果
  • uploadify文件上传
  • unity3d状态机
  • jquery插件大全
  • jquery三种遍历方法
  • 耳机插头怎么拔
  • jquery实战
  • 五十八二
  • 山东水利建设基金减免政策
  • 主管单位申请书
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设