位置: 编程技术 - 正文

学习php设计模式 php实现工厂模式(factory)(php设计模型)

编辑:rootadmin

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

文章相关热门搜索词:php23种设计模式,php常见设计模式和用途,php常用设计模式(大总结),php 设计模式,php23种设计模式,php 设计模式 鸟哥,php 设计模式 鸟哥,php设计模式六大原则,内容如对您有帮助,希望把文章链接给更多的朋友!

学习php设计模式 php实现工厂模式(factory)(php设计模型)

一、意图定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使用一个类的实例化延迟到其子类【GOF】二、工厂模式结构图

三、工厂模式中主要角色抽象产品(Product)角色:具体产品对象共有的父类或接口具体产品(Concrete Product)角色:实现抽象产品角色所定义的接口,并且工厂方法模式所创建的每一个对象都是某具体产品对象的实例抽象工厂(Creator)角色:模式中任何创建对象的工厂类都要实现这个接口,它声明了工厂方法,该方法返回一个Product类型的对象。Creator也可以定义一个工厂方法的缺省实现,它返回一个缺省的的ConcreteProduct对象具体工厂(Concrete Creator)角色:实现抽象工厂接口,具体工厂角色与应用逻辑相关,由应用程序直接调用以创建产品对象。四、工厂模式的优点和缺点工厂模式的优点:工厂方法模式可以允许系统在不修改工厂角色的情况下引进新产品。工厂模式的缺点:客户可能仅仅为了创建一个特定的ConcreteProduct对象,就不得不创建一个Creator子类五、工厂模式适用场景1、当一个类不知道它所必须创建的对象的类的时候2、当一个类希望由它的子类来指定它所创建的对象的时候3、当类将创建对象的职责委托给多个帮助子类的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候六、工厂模式与其它模式抽象工厂模式(abstract factory模式):Abstract Factory模式经常使用工厂方法来实现Template Method模式: 工厂方法通常在Template Methods中被调用七、工厂模式PHP示例

八、区分工厂方法模式与简单工厂模式工厂方法模式与简单工厂模式再结构上的不同不是很明显。工厂方法类的核心是一个抽象工厂类,而简单工厂模式把核心放在一个具体类上。工厂方法模式之所以有一个别名叫多态性工厂模式是因为具体工厂类都有共同的接口,或者有共同的抽象父类。当系统扩展需要添加新的产品对象时,仅仅需要添加一个具体对象以及一个具体工厂对象,原有工厂对象不需要进行任何修改,也不需要修改客户端,很好的符合了”开放-封闭”原则。而简单工厂模式在添加新产品对象后不得不修改工厂方法,扩展性不好。工厂方法模式退化后可以演变成简单工厂模式。

标签: php设计模型

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

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

下一篇:学习php设计模式 php实现适配器模式(php 设计模式 鸟哥)

  • 销售给学员的教材是否要缴纳增值税?
  • 设立登记核准通知书未签名不能办理其他业务
  • 企业对公账户转法人私户
  • 大票可以直接更名吗
  • 全年一次性奖金单独计税怎么算
  • 回购股份进行股权激励会计分录
  • 经营活动现金净流量在报表上怎么看
  • 物流企业会计核算的主要内容
  • 挂靠企业所得税怎么办?
  • 民非企业缴纳社保会计分录
  • 新会计准则要求
  • 发票勾选 发票认证
  • 小规模纳税人季度销售额不超过30万免征
  • 关于国际货运代理协会联合会的描述不正确的是
  • 7月1日发票新规定
  • 自然人出租房屋增值税税率
  • 公司破产实收资本尚未交完股东对公司承担什么责任
  • 筹建期间的开办费计入什么费用
  • 企业股权平价转让涉及哪些税费
  • 回盘的模板
  • 一般企业财务报表格式2019选是还是否
  • 关联方之间借款利息怎么开票
  • 无法访问您可能没有权限使用资源
  • 初级会计一共考几门课程
  • 冲减多计提的工会经费调账说明
  • 酒店安装监控费用谁出
  • 支付设备维修费用计入什么科目
  • 筹建期的开办费需要归集后才能一次性扣除吗
  • wordpress 常用函数
  • xp系统可以安装cad吗
  • php自定义字段
  • PHP:move_uploaded_file()的用法_Filesystem函数
  • 应付职工薪酬的明细科目有哪些
  • 企业之间拆借资金
  • 微无界是什么软件
  • 命令行基础
  • 基于网页的客服系统
  • 投标须知所包括的内容有哪些
  • 没有实收资本可以投资吗
  • js fetch api
  • 如何成功安装暗区突围
  • htmlspecialchars_decode
  • spring的aoc和aop
  • 小规模纳税人印花税减半征收政策
  • phpcms模块
  • 企业做账会计分录流程
  • 开办费计入哪个会计科目
  • python文件可分为哪几类
  • 公司不可以销售车辆吗
  • 出口销售收入要交印花税吗
  • 加工费计入什么科目制造企业成本
  • 公司租赁个人车辆租金多少合适
  • 办理外经证后缴税怎么交
  • 资本溢价举例说明
  • 预付账款在何时可以转出
  • 利润太高,如何调产品收发存
  • 一般纳税人增值税申报操作流程
  • 可供出售金融资产和交易性金融资产
  • 红字发票开错了已上传如何作废?
  • 对公账户明细入账怎么查
  • 存货周转率多少属正常范围
  • 购建时间是什么意思
  • 查找非空顺序表l中第一个最大的元素
  • windows server 2008 硬盘格式
  • vsftpd.service disabled
  • auto tool怎么用
  • wind微博
  • windows10玩lol
  • unable to instantiate default
  • javascript create
  • Node.js中的事件循环是什么意思
  • nodejs遍历json数据
  • 异步加载场景
  • unity游戏加密
  • jquery 购物车
  • 国家税务局总局官网
  • 深圳发票真伪查询入口
  • 设区市是哪里
  • 村级服务公开的具体内容
  • 税务征收社保费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设