【PHP-设计模式】工厂模式

author:咔咔php

WeChat:fangkangfkhtml

 

我这里就不在去说那些专业术语了,我本身看着都迷糊。微信

其实能够想一想平时本身的业务场景,加入咱们的项目有多中支付方式。我以前的写法就是俩个控制器,点击哪一个走哪一个方法,这样也是能够实现的。可是如今有一个很nice的方式,那就是工厂模式测试

 

看下面这段代码,咱们能够在控制器定义一个接口类,实现继承的规范,在将三中方式建立三个类,配置各自的支付参数微信支付

在作一个跟前台交互的类,获取前台给咱们的支付方式标识,根据不一样的支付标识来实例化不一样的类,实现具体的功能
 code

这个文件是直接能够测试的,放置到本身的环境中,而后运行便可,参数本身传 htm

<?php

header("Content-type: text/html; charset=utf-8");

// 定义支付接口
interface Pay
{
    public function payType();
}


/**
 * 定义全部支付的类
 */
class Zhifubao implements Pay
{
    public function payType()
    {
        echo '使用支付宝支付';
    }
}

class Weixin implements Pay
{
    public function payType()
    {
        echo '使用微信支付';
    }
}

class Sanfang implements Pay
{
    public function payType()
    {
        echo '使用第三方支付';
    }
}

class selectPay
{
    /**
     * @param $payType  传递支付方式
     * @return Sanfang|Weixin|Zhifubao
     */
    public static function facatory($payType)
    {
        switch ($payType)
        {
            case 'zhifu bao';
                return new Zhifubao();
                break;

            case 'Weixin';
                return new Weixin();
                break;


            case 'Sanfang';
                return new Sanfang();
                break;
        }
    }
}

$transport=selectPay::facatory('Weixin');
$transport->payType();

相关文章
相关标签/搜索