位置: 编程技术 - 正文

学习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 设计模式 鸟哥)

  • 延期申报后可否延期缴纳税款
  • 小规模纳税人的认定标准是什么
  • 运费收入算销售收入吗
  • 跨月发票红字冲销账务处理
  • 事业单位财政拨款取得方式
  • 企业存货核算的内容包括
  • 销售产品货款存入银行是什么凭证
  • 印花税多缴纳怎么办
  • 印刷配件有哪些
  • 企业所得税连续3年亏损预警自查报告
  • 保险公司如何计算车辆折旧
  • 公司筹建期的个税怎么交
  • 金税盘清卡晚了一天会怎么样
  • 个人之间的房屋抵押需要去房管局做登记吗
  • 递延所得税资产怎么计算
  • 取得甲供材料按简易征收发票能抵扣吗
  • 税费是哪个会计科目?
  • 小规模纳税人取得专票如何处理
  • 电子承兑到期提示付款选择线上还是线下
  • 企业所得税法如何确认应税收入
  • 研发成功的产品卖出去怎么做账
  • 生产成本包括什么科目内容
  • windows11怎么删除临时文件
  • 全额拨款事业单位工资待遇
  • php 设计模式 鸟哥
  • 计算机指令用来做什么
  • linux怎么检查网络状态
  • 房地产企业销售额扣除土地价款
  • 凭证导致账簿错误
  • 资产负债表的编制依据是会计恒等式
  • 常用的3个第三方类库
  • 存货跌价准备的分录
  • php ioc
  • 中医门诊免增值税吗
  • arc架构
  • 借款费用如何确认收入
  • 购进的产品样品怎么入账
  • swift 协议扩展
  • 本期收入及免税收入怎么填
  • 金融企业的代理业务
  • 中标费用入什么科目
  • 将外购商品用于捐赠的分录
  • 现金流量表填写说明
  • cms是前端还是后端
  • 税务已注销工商如何注销
  • mysql数据类型和索引
  • 承兑汇票大回头是什么意思
  • 应交增值税明细账怎么填写样本
  • 无形资产未确认融资费用例题
  • 个人出租不动产月租金不超10万免税
  • 临时工的工资如何申报个税
  • 货样广告品出口如何申报
  • 预收账款的借贷方向增减
  • 红字发票是怎么开的
  • 公司买东西算什么费用
  • 普通发票如何抵扣税
  • 会计每个月需要打印科目余额表吗
  • 不同数据库之间的数据一同传递
  • mysql 左链接 右链接
  • ubuntu 16.10
  • ssh远程连接linux
  • mac和iphone互动
  • linux 配置中文
  • win8右下角
  • linux大于符号
  • linux与windows有哪些主要区别
  • win10 自带
  • win7无法打开任何软件程序
  • linux入门学习
  • qt_5 not found
  • opengl es 3.2
  • windows 2002关机
  • js拖拽元素到另一个元素
  • angularjs2
  • nodejs esmodule
  • 深入理解中国式现代化
  • 江西省国家税务局电子税务局
  • 国家税务总局石棉县税务局
  • 烟叶税属于中央税还是地方税
  • 国家税务总局公告2013年第12号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设