【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();

相關文章
相關標籤/搜索