<?php

class SmsApi {
 public static function create($smsprovider){
        $sms = null;
        switch ($smsprovider) {
            case 'duanxinwang':
                $sms = new DuanXinWang();
                break;
            case 'baidusms':
                $sms = new BaiduSms();
                break;
        }

        return $sms;
    }
}

class DuanXinWang {
    public function getsms(){

    }

}
class BaiduSms {
    public function getsms(){

    }

}
//使用方法 
$sms = SmsApi::create(C('SMS_PROVIDER'));//此可通过配置读取 短信商 C('SMS_PROVIDER') =duanxinwang
$sms->getsms();

以下为增加版

<?php

class SmsApi {
public static function create($smsprovider){
$sms = null;
$sms= new $smsprovider(); //如果使用了命名空间,这里一定要带上
return $sms;
}
}

class DuanXinWang {
public function getsms(){
echo 'duanxinwang';

}

}
class BaiduSms {
public function getsms(){

}

}
//使用方法
$sms = SmsApi::create('DuanXinWang');//此可通过配置读取 短信商 C('SMS_PROVIDER') =DuanXinWang 
 $sms->getsms();

?>

最后更新于 2016年12月31日

PHP 设计模式-工厂类
标签: