第一步,目的是为了解耦
首先创建接口 统一标准
#该接口是手机接口
namespace App\Http\Intface;
interface PhoneInterface
{
function sendMsg();
function tell();
}
该方法是手机工厂接口
namespace App\Http\Factory;
interface PhoneFactory
{
public static function createPhone();
}
第二 创建三个工厂
小米工厂
namespace App\Http\Factory;
use App\Http\Controllers\XiaoMiController;
use App\Http\Intface\PhoneInterface;
class XiaoMiPhoneFactory implements PhoneFactory
{
public static function createPhone()
{
// TODO: Implement createPhone() method.
return new XiaoMiController();
}
}
华为工厂
namespace App\Http\Factory;
use App\Http\Controllers\HuaweiController;
class HuaweiPhoneFactory implements PhoneFactory
{
public static function createPhone()
{
// TODO: Implement createPhone() method.
return new HuaweiController();
}
}
具体操作-》控制器 : 小米控制器 实现具体方法
namespace App\Http\Controllers;
use App\Http\Intface\PhoneInterface;
class XiaoMiController extends Controller implements PhoneInterface
{
public function sendMsg(){
return '使用小米手机发短信';
}
public function tell(){
return '使用小米手机打电话';
}
}
具体操作-》控制器 : 华为控制器 实现具体方法
namespace App\Http\Controllers;
use App\Http\Intface\PhoneInterface;
class HuaweiController extends Controller implements PhoneInterface
{
function sendMsg()
{
// TODO: Implement sendMsg() method.
echo '用华为手机发短信';
}
function tell()
{
// TODO: Implement tell() method.
echo '用华为手机打电话';
}
}
index控制器 调用
namespace App\Http\Controllers;
use App\Events\RegisterHost;
use App\Http\Factory\HuaweiPhoneFactory;
use App\Http\Factory\XiaoMiPhoneFactory;
class IndexController extends Controller
{
public function index(){
echo XiaoMiPhoneFactory::createPhone()->sendMsg();
echo '<br/>';
echo XiaoMiPhoneFactory::createPhone()->tell();
echo '<br/>';
echo HuaweiPhoneFactory::createPhone()->sendMsg();
echo '<br/>';
echo HuaweiPhoneFactory::createPhone()->tell();
}
}
效果