位置: 编程技术 - 正文

PHP设计模式之工厂模式实例总结(php常用设计模式(大总结))

编辑:rootadmin

推荐整理分享PHP设计模式之工厂模式实例总结(php常用设计模式(大总结)),希望有所帮助,仅作参考,欢迎阅读内容。

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

本文实例讲述了PHP设计模式之工厂模式。分享给大家供大家参考,具体如下:

使用工厂模式的目的或目标?

工厂模式的最大优点在于创建对象上面,就是把创建对象的过程封装起来,这样随时可以产生一个新的对象。

减少代码进行复制粘帖,耦合关系重,牵一发动其他部分代码。

通俗的说,以前创建一个对象要使用new,现在把这个过程封装起来了。

假设不使用工厂模式:那么很多地方调用类a,代码就会这样子创建一个实例:new a(),假设某天需要把a类的名称修改,意味着很多调用的代码都要修改。

工厂模式的优点就在创建对象上。

工厂模式的优点就在创建对象上。建立一个工厂(一个函数或一个类方法)来制造新的对象,它的任务就是把对象的创建过程都封装起来,

创建对象不是使用new的形式了。而是定义一个方法,用于创建对象实例。

每个类可能会需要连接数据库。那么就将连接数据库封装在一个类中。以后在其他类中通过类名:

为什么引入抽象的概念?

想一想,在现实生活中,当我们无法确定某个具体的东西的时候,往往把一类东西归于抽象类别。

工厂方法:

比如你的工厂叫做“香烟工厂”,那么可以有“七匹狼工厂”“中华工厂”等,但是,这个工厂只生厂一种商品:香烟;

抽象工厂:无法描述它到底生产什么产品,它生产很多类型的产品(所以抽象工厂就会生成子工厂)。

你的工厂是综合型的,是生产“一系列”产品,而不是“一个”,比如:生产“香烟”,还有“啤酒”等。然后它也可以有派生出来的具体的工厂,但这些工厂都是生产这一系列产品,只是可能因为地域不一样,为了适应当地人口味,味道也不太一样。

工厂模式:理解成只生成一种产品的工厂。比如生产香烟的。

工厂方法:工厂的一种产品生产线 。比如键盘的生成过程。

别人会反驳:吃饱了没事干,一定要修改类名称呢?这个说不定。一般都不会去修改类名称。

PHP设计模式之工厂模式实例总结(php常用设计模式(大总结))

其实工厂模式有很多变体,抓住精髓才是关键:只要是可以根据不同的参数生成不同的类实例,那么就符合工厂模式的设计思想。

这样子让我联想到框架中经常会有负责生成具体类实例的方法供调用。

由于前面使用过phpcms,用phpcms的来帮助理解,更加好,如下:

将会生成得到order这个实例。传递不同的参数得到不同的类实例,这个就符合工厂模式。

当然load_app_class这个方法里面还会结合了单件模式的思想。避免调用n次,就重复创建n个相同的实例

工厂模式我想到的一个典型的应用就是:php可能要链接mysql,也可能要链接sqlserver,还有其他什么数据库。那么做一个抽象的数据库类,

这个类就是一个工厂类,专门负责产生不同的对象。

这样子做很方便扩展。我们在直接链接数据库的时候,不是使用代码

的形式

而可以动态生成一个连接数据库的实例。可以是mysql,也可以是连接oracle的。

在thinkphp框架中也有对应的实现:

Db.class.php就是一个工厂类(也可以叫做数据库中间层,之所以叫做中间层,是因为可以操作mysql、oracle等各数据库。而这个类就是中间层作用,屏蔽掉具体的实现。让程序员可以不改动原来的查询代码。中间层来对接mysql、oracle等数据库。

Db.class.php中有个factory()方法来创建不同的数据库实例

还有做支付接口的时候,未来可能对应不同的支付网关:支付宝、财付通、网银在线等。方便未来扩展,设计成工厂模式。定一个专门生产网关接口的工厂,抽象出来,做成接口形式,让所有的子类都要实现它的接口。以后加一个支付方式,要使用哪一种支付方式,改变一下参数即可。

书籍<php权威编程>(英文名称为PHP 5 Power Programming)也提到一个工厂模式的例子,学到一招:在为用户注册的时候,分为很多种角色的用户。比如册用户,匿名用户、管理员用户等。完全使用可以使用工厂的思想来实现,代码也容易维护,为每种角色可以生成操作的类。

定义以下几个类:

UserFactory 用户工厂类,负责生成不同的用户类User:用户类的基类,所有用户类都是继承这个类不同角色的类:注册用户类、匿名用户类、管理员用户类

总结结束,欢迎指正!

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

PHP实现类似于C语言的文件读取及解析功能 本文实例讲述了PHP实现类似于C语言的文件读取及解析功能。分享给大家供大家参考,具体如下:$log_file_name='D:/static/develop/kuai_zhi/acagrid.com/public/Logs/'.date

PHP实现简单的模板引擎功能示例 本文实例讲述了PHP实现简单的模板引擎功能。分享给大家供大家参考,具体如下:phpweb开发中广泛采取mvc的设计模式,controller传递给view层的数据,必须

php简单读取.vcf格式文件的方法示例 本文实例讲述了php简单读取.vcf格式文件的方法。分享给大家供大家参考,具体如下:/***读取.vcf格式文件*@param$filename*/functionreadCvf($filename){$file=fopen($file

标签: php常用设计模式(大总结)

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

上一篇:PHP获取数组表示的路径方法分析【数组转字符串】 原创(php中如何获取数组的长度)

下一篇:PHP实现类似于C语言的文件读取及解析功能(php类和对象)

  • 所得税季度预缴纳税申报表
  • 出口货物退(免)税管理办法
  • 增值税专用发票有效期是多长时间
  • 财务报表没申报以后可不可以补申报
  • 不计入销售收入
  • 100万劳务费发票多少税
  • 劳务有预付款吗
  • 商品和服务税收分类编码
  • 劳务派遣人员工资可以由用工单位发放么
  • 外资企业撤退
  • 计算产品当月生产成本
  • 购入固定资产如何摊销
  • 本行给企业发放贷款收回利息分录?
  • 给员工发结婚礼金怎么说
  • 接受投资转入的货物
  • 公司买房需要交房产税吗
  • 税务年报多少钱
  • 出售股份是利好吗
  • 2021印花税零申报怎么报
  • 雇主责任险发票的项目名称怎么写
  • 研发费加计扣除75%政策
  • 如何防止虚开发票 等舞弊行为?
  • 差额征税的差额怎么算
  • 0申报逾期罚款
  • 收入纳税明细怎么打印
  • 营业执照办下来多久能在网上查到
  • 销售结算款扣款怎么记账?
  • 酒店客房收入怎么算
  • mac应用程序安装权限在哪找
  • Ubuntu 16.04 Server Edition 英文版安装教程
  • 销售自己使用过的物品的税率
  • php中的类是什么
  • 委托加工物资企业原材料都是自己采购
  • 抵扣了进项税额
  • 电商快递费怎么算
  • PHP:ftp_nb_get()的用法_FTP函数
  • dghm.exe是什么程序
  • wifi万能钥匙密码王
  • Micheldever Wood的蓝铃花,英国汉普郡 (© Hursley/Getty Images Plus)
  • 股权划转是否涉及印花税
  • 法恩达尔的信
  • PHP使用http_build_query()构造URL字符串的方法
  • 煤矿安全费用提取规定
  • 盘盈的存货计入哪个科目
  • 税前弥补以前年度亏损
  • 待核销基建支出与待摊投资的区别
  • 增值税纳税申报实训报告
  • 固定资产有金额界定吗
  • 进项税转出金额是发票上的哪个
  • sqlserver正则表达式用法
  • 收购公司款项的会计处理
  • 本期应补退税额为负数怎么申报
  • 企业基金分红具体流程
  • 销售旧货和销售使用过的固定资产区别
  • 一般纳税人劳务费税率是多少2023
  • 车辆购置税的计税价格为不含增值税的全部价款
  • 失控发票未付款什么意思
  • 进项税额中运输费怎么算
  • 零申报报表怎么填写
  • 往来款多了会怎么样
  • 资产负债表固定资产怎么填
  • 小企业成本核算方法怎么填
  • 分配间接成本的计算公式
  • 新办企业必须经过什么核准登记
  • centos7安装MySQL5.6
  • win8不能联网
  • winxp教程
  • win10系统虚拟内存
  • Linux中RedHat CentOS Ubuntu Fedora的区别详解
  • windows 10 mobile--移动版
  • 屏幕画面颠倒
  • node.js console.log
  • ssh自动输入密码登录
  • node express 路由
  • 消费税纳税申报流程图
  • 电子税务局申领的发票怎么读入金税盘
  • 生产变压器有什么危害
  • 新领取的发票怎么读入金税盘
  • 无纸化同义词
  • 成都车辆购置税2024年新政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设