【PHP-設計模式】工廠模式
阿新 • • 發佈:2018-11-27
author:咔咔
WeChat:fangkangfk
我這裡就不在去說那些專業術語了,我自己看著都迷糊。
其實可以想想平時自己的業務場景,加入我們的專案有多中支付方式。我之前的寫法就是倆個控制器,點選哪個走哪個方法,這樣也是可以實現的。但是現在有一個很nice的方式,那就是工廠模式
看下面這段程式碼,我們可以在控制器定義一個介面類,實現繼承的規範,在將三中方式建立三個類,配置各自的支付引數
在做一個跟前臺互動的類,獲取前臺給我們的支付方式標識,根據不同的支付標識來例項化不同的類,實現具體的功能
這個檔案是直接可以測試的,放置到自己的環境中,然後執行即可,引數自己傳
<?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();