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