位置: 编程技术 - 正文

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

  • 递延所得税资产借贷方向
  • 税收保全措施适用于
  • 没有申报个税的工资怎么入账
  • 应收账款余额不对怎么调账
  • 销项负数发票是代表交易没有成功吗?
  • 发票来历凭证号怎么填写
  • 购买固定资产是费用吗
  • 长期投资计提减值准则
  • 年报所得税与季报的区别
  • 当月开的发票当月已付款怎么做分录?
  • 公司欠增值税如何补交?
  • 公司作为承租方需要交房产税吗
  • 纳税人提供不动产租赁服务采取预收款方式
  • 预缴企业所得税税率
  • 简易征收一般纳税人可以收专票吗
  • 股份转让的溢价是什么意思
  • 生产企业销售原材料所取得的收入属于( )
  • 因为质量问题
  • 固定资产报废的净损失计入哪里
  • 硬盘的日常维护需要做到什么?
  • Win10家庭版安装教程
  • 文件改后缀什么意思
  • win10通知怎么打开
  • PHP:xml_parser_get_option()的用法_XML解析器函数
  • macOS 11 Big Sur 开发者预览版 Beta 7正式推送
  • ezulumain.exe是病毒进程吗 ezulumain进程安全吗
  • 贷款损失准备是什么类科目
  • gst插件
  • 商业银行贷款的三种基本形式
  • 年终双薪要做满一年嘛
  • 怎么配置tomcat服务器
  • vue3使用高德地图
  • php教程100
  • 全盘会计和总账会计一样吗
  • websocket基于http
  • phpcms模板下载
  • phpcms模块
  • 加油站的卷式发票能抵扣吗
  • 研发企业所得税税率
  • python的基本风格
  • mysql的查询缓存与redis的区别
  • 建设工程合同从完成承包的内容进行划分
  • 待转销项税额转出
  • 小规模企业可以抵扣进项税吗
  • 财政应返还额度年末有余额吗?
  • 残保金账务处理会计科目
  • 退去年的销售账务如何处理
  • 扫码开票软件
  • 水处理设备行业发展
  • 进项税销项税抵扣分录
  • 承租方承担的税费有哪些
  • 应收账款属于会计科目吗
  • 待抵扣进项税额和进项税额的区别
  • 提供劳务收入的确认条件
  • 收到票据又转背书付了账务处理
  • 哪些企业需要社工
  • 未开票州
  • 应付票据在资产负债表怎么填列
  • 企业为员工代缴社保怎样在网上申报
  • 现金收款凭证的填制日期应当是
  • 伤病假条
  • mysql解压版
  • Sqlserver timestamp数据类使用介绍
  • cmd命令行操作
  • 安装win8一直卡在转圈圈
  • linux crontab命令详解
  • a4腰多大
  • 博通网卡驱动win7
  • nodejss
  • unity方法大全
  • jquery validation
  • 获取外网ip地址有什么用
  • 在javascript中
  • dom方法总结
  • jsp中img标签
  • 公司跨区迁移税务查账严吗
  • 江苏省国家税务局发票查询
  • 岗位回避什么意思
  • 地税服务费算什么科目
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设