位置: 编程技术 - 正文

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

  • 股权转让的相关文件有哪些
  • 定期定额户需要做账吗
  • 食用油交不交消费税
  • 信息采集需要填两个家庭成员,但只能有一个监护人
  • 转出未交增值税年末怎么转平
  • 补交以前年度的所得税
  • 环境保护税属于什么税种
  • 甲方代付材料费合法吗
  • 外商投资企业如何注资
  • 计提的工会经费怎么做账
  • 建筑企业收到材料发票没有备注能用吗
  • 委托加工模具的费用计入什么科目?
  • 更正申报所得税流程
  • 委托生产企业和受托生产企业
  • 营改增之后的增值税
  • 出口用的增值税税率
  • 不动产抵扣涉及净值,这里的净值是否扣除减值准备,是否扣除不动产改变用途当月的折旧额?
  • 自用房屋的房产税怎么缴纳
  • 个人营业执照怎么注销网上申请流程
  • 对公账户上扣缴的税怎么做分录?
  • 公司的汽车购置税怎么交
  • 金税盘抄税报税清卡流程图
  • uniapp分享图片
  • 在建工程进项税可以抵扣吗
  • macos big sur更新后能改回来吗
  • wordpress访客插件
  • 中投公司投资的股票
  • 支付挂靠方的管理费用有进项吗?
  • 公司为员工交的社保比例
  • 缴纳个税时怎么做分录
  • 记账凭证和会计分录的区别
  • citespace分析derwent
  • unbutun系统
  • 收到银行开具的手续费的专票会计分录
  • php匿名函数为何不匿名
  • 施工企业如何开发票
  • vue中解决跨域问题
  • 小微企业年收入超过300万按多少缴纳所得税
  • 城市维护建设税,教育费附加,地方教育费附加
  • mongodb数据查询
  • 公司举办活动方案
  • 读取注册表失败,请检查注册表
  • 一般纳税人发生应税销售行为向购买方收取
  • 企业申报纳税都交什么税
  • 发票已开款未到的会计分录?
  • 增值税加计抵减是什么意思
  • 什么叫代销合同
  • 政府补助计入哪个会计科目
  • 小规模纳税人购进税控收款机
  • 纳税人仅能通过手动查找
  • 外出经营预交企业所得税税率
  • 公司发放节日礼品
  • 退货属于什么物流
  • 同城票据交换差额户金额从哪得来的
  • 如何算增值税金额
  • 仓库费用计入什么科目
  • 工会经费主要用于什么服务岗位
  • 事业单位接受捐赠会计处理
  • 出口为什么没有增值税
  • node使用mysql
  • 通过修改注册表来修改chrome配置
  • 苹果mac电脑怎么复制粘贴
  • windows账户升级为管理员
  • centos时间不同步的解决方法(centos时间同步)
  • iptables配置详解
  • win7不识别大于4T的盘
  • win7声音扬声器设置
  • cocos2dx4.0入门
  • 用jquery实现隔行变色
  • js中密码由字母和数字组成,长度为4-20
  • jquery添加兄弟元素
  • android get
  • linux shell 进程
  • nodejs cgi
  • javascript有几种类型
  • 如何查询车辆购买的保险
  • 教育培训行业的发展前景
  • 铅球七米
  • 城市维护建设税,教育费附加,地方教育费附加
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设