PHP策略模式

1、什么是策略模式?

定义:将一组特定的行为和算法封装成类,以适应某些特定的上下文环境,并让它们可以相互替换,这种模式就是策略模式。

简单理解就是 有n个做法供你选择,根据你的需要选择某个策略得到结果

2、为什么要用策略模式?

使用设计模式之后,我们的代码冗余和耦合度变低,每个策略模块完成对应的功能

当然缺点就是一个功能我们就要响应制作一个策略类,但是我们统观MVC架构当中(ThinkPHP,Yii2),一个控制器对应一个视图,其实也是策略设计模式的体现了。

3、实现方式

首先我们要定义一个接口,接口中定义需要实现的方法。

然后分别定义不同的类来实现接口中的方法。

最后在根据用户的不同,分别 new 不同的方法。

/**
 * @purpose: 父类接口
 * Interface UserInterface
 */
interface UserInterface
{
    /**
     * @purpose: 展示广告
     * @return mixed
     */
    public function showAd();

    /**
     * @purpose: 展示商品分类
     * @return mixed
     */
    public function showCatetory();
}

/**
 * @purpose: 男性用户实现用户接口
 * Class MaleUser
 */
class MaleUser implements UserInterface
{
    /**
     * @purpose: 展示广告
     * @return mixed
     */
    public function showAd()
    {
        echo "电子产品";
    }

    /**
     * @purpose: 展示商品分类
     * @return mixed
     */
    public function showCatetory()
    {
        echo "电脑数码";
    }
}

/**
 * @purpose: 女性用户实现用户接口
 * Class FemaleUser
 */
class FemaleUser implements UserInterface
{
    /**
     * @purpose: 展示广告
     * @return mixed
     */
    public function showAd()
    {
        echo "化妆品";
    }

    /**
     * @purpose: 展示商品分类
     * @return mixed
     */
    public function showCatetory()
    {
        echo "服装分类";
    }
}

  /** 
    *@purpose:自定义控制器
    * @return mixed
    */


if ($_GET['male']){
    $user = new MaleUser();
} else {
    $user = new FemaleUser();
}
$user->showAd();  //会根据用户的性别展示各自的广告内容

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值