php 设计模式之 工厂模式->工厂方法

42 篇文章 1 订阅
4 篇文章 0 订阅

第一步,目的是为了解耦

首先创建接口 统一标准

#该接口是手机接口
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();
    }


   
}

效果

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值