php工厂方法模式是什么

藏色散人
Lepaskan: 2023-04-09 11:32:02
asal
2543 人浏览过

php工厂方法模式属于创建型模式,是常用设计模式之一,并且工厂模式还分为简单工厂模式、工厂方法模式、静态工厂模式以及抽象工厂模式,而工厂方法就是为了解决简单工厂扩展性的问题。

php工厂方法模式是什么

推荐:《PHP教程

引言

  所属:创建型模式,常用设计模式之一

  工厂模式分为:简单工厂模式、工厂方法模式、静态工厂模式、抽象工厂模式。

  下面为工厂方法模式。

模式概述

  工厂方法就是为了解决简单工厂扩展性的问题,相信大家再看简单工厂是也发现了其缺陷,

  以前简单工厂要扩展的时候,需要修改工厂内容,这就违背了设计模式对外扩展开放,对内修改关闭原则,所以搞了个工厂方法模式,这是我的理解,    

  涉及元素:

    工厂类(实例化产品A)

    工厂类(实例化产品B)
    产品类A

    产品类B

举个栗子

     一个商城网站,支持多种支付功能,例如:支付宝、微信、某银行、某银行……,程序如何设计。

    如果按照简单工厂模式的话,声明一个工厂类,由工厂类判断调用哪种支付方式,那么必然存在工厂类不断修改的操作,每增加一个支付方式都要去修改工厂类,违背了【开放封闭】原则

    解决的问题:

      1. 解决简单工厂【开放封闭】原则问题      

    流程图如下:

          

 程序设计代码:

1. 测试入口index.php

createMode(); // 使用工厂类获取产品类
$mode->doAction($param); // 执行产品类方法
Salin selepas log masuk

2. 工厂类接口,支付宝支付工厂类,微信支付工厂类,银联支付工厂类。

工厂类接口:PayFactoryInterface.php

Salin selepas log masuk

支付宝支付工厂类:ZhiFuBaoFactory.php

Salin selepas log masuk

微信支付工厂类:WeiXinFactory.php

Salin selepas log masuk

银联支付工厂类:YinLianFactory.php

Salin selepas log masuk

3. 产品类接口,支付宝支付产品类,微信支付产品类,银联支付产品类。

产品类接口:PayInterface.php

Salin selepas log masuk

支付宝支付产品类:ZhiFuBao.php

Salin selepas log masuk

微信支付产品类:WeiXin.php

Salin selepas log masuk

银联支付产品类:Yinlian.php

Salin selepas log masuk

以下为源码地址

  GitHub源码地址:https://github.com/xiaobaoword/design_pattern/tree/master

 

以上是php工厂方法模式是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

Label berkaitan:
php
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!