重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这期内容当中小编将会给大家带来有关什么是php工厂方法模式,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
10多年的靖州网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。网络营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整靖州建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“靖州网站设计”,“靖州网站推广”以来,每个客户项目都认真落实执行。
php工厂方法模式属于创建型模式,是常用设计模式之一,并且工厂模式还分为简单工厂模式、工厂方法模式、静态工厂模式以及抽象工厂模式,而工厂方法就是为了解决简单工厂扩展性的问题。
引言
所属:创建型模式,常用设计模式之一
工厂模式分为:简单工厂模式、工厂方法模式、静态工厂模式、抽象工厂模式。
下面为工厂方法模式。
模式概述
工厂方法就是为了解决简单工厂扩展性的问题,相信大家再看简单工厂是也发现了其缺陷,
以前简单工厂要扩展的时候,需要修改工厂内容,这就违背了设计模式对外扩展开放,对内修改关闭原则,所以搞了个工厂方法模式,这是我的理解,
涉及元素:
工厂类(实例化产品A)
工厂类(实例化产品B)
产品类A
产品类B
举个栗子
一个商城网站,支持多种支付功能,例如:支付宝、微信、某银行、某银行……,程序如何设计。
如果按照简单工厂模式的话,声明一个工厂类,由工厂类判断调用哪种支付方式,那么必然存在工厂类不断修改的操作,每增加一个支付方式都要去修改工厂类,违背了【开放封闭】原则
解决的问题:
1. 解决简单工厂【开放封闭】原则问题
流程图如下:
程序设计代码:
1. 测试入口index.php
createMode(); // 使用工厂类获取产品类 $mode->doAction($param); // 执行产品类方法
2. 工厂类接口,支付宝支付工厂类,微信支付工厂类,银联支付工厂类。
工厂类接口:PayFactoryInterface.php
支付宝支付工厂类:ZhiFuBaoFactory.php
微信支付工厂类:WeiXinFactory.php
银联支付工厂类:YinLianFactory.php
3. 产品类接口,支付宝支付产品类,微信支付产品类,银联支付产品类。
产品类接口:PayInterface.php
支付宝支付产品类:ZhiFuBao.php
微信支付产品类:WeiXin.php
银联支付产品类:Yinlian.php
以下为源码地址
GitHub源码地址:https://github.com/xiaobaoword/design_pattern/tree/master
上述就是小编为大家分享的什么是php工厂方法模式了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。
网站栏目:什么是php工厂方法模式
URL分享:http://cqcxhl.com/article/pcsjsg.html