<返回更多

php常用设计模式之策略模式

2020-05-07    
加入收藏

目录

概述

这是关于php进阶到架构之php7核心技术与实战学习的系列课程:php常用设计模式之策略模式

学习目标:

  1. 掌握策略模式的含义
  2. 掌握策略模式设计实现
  3. 举一反三实际开发中应用设计模式

策略模式含义

策略模式指的是程序中涉及决策控制的一种模式,是一组算法的封装,动态选择需要的算法并使用。

策略模式的三种角色

  1. 抽象策略角色
  2. 具体策略角色
  3. 环境角色(对抽象策略角色的引用)

策略模式实现步骤

1.定义抽象角色类(定义好各个实现的共同抽象方法)

2.定义具体策略类(具体实现父类的共同方法)

3.定义环境角色类(传入抽象角色类,调用抽象策略类方法)

策略模式,生活中的实例:

例如下班回家,我可以有几个策略考虑:我可以骑单车,乘坐公交车,乘地铁等策略

还比如网站开发个人中心页面,

不同的用户类型显示个人主页不一样,这个可以使用策略模式,即针对不同的用户使用不同的策略。

策略模式设计代码实现

//抽象策略类
abstract class BaseUserStratege{
    abstract public function center();//个人中心
}
//具体策略普通用户策略
class CommonUserStratege extends BaseUserStratege{
    public function center()
    {
        echo 'common user center';
    }
}
//具体策略VIP用户策略
class VipUserStratege extends BaseUserStratege{
    public function center()
    {
        echo 'vip user center';
    }
}
//环境角色,对抽象策略类的引用
class UserStrategeContext{
    private $baseUserStratege = null;
    public function __construct($baseUserStratege)
    {
        $this->baseUser = $baseUser;
    }
    public function center(){
        return $this->baseUserStratege->center();
    }
}

//根据不同用户类型创建不同的具体决策类,比如vip用户,就创建VipUser策略
$user = new VipUserStratege();
$userStrategeContext = new UserStrategeContext($user);
$userStrategeContext->center();

php7进阶到架构师相关阅读

https://www.kancloud.cn/gofor/gofor

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>