策略模式

//策略抽象类
abstract class Strategy{
//算法方法
abstract public function strtegyInterface();
}

// 具体的策略
class StrategyA extends Strategy {

public function strtegyInterface()
{
    echo '实现A算法';
}

}

class StrategyB extends Strategy {
public function strtegyInterface()
{
echo '实现B算法';
}
}

// 根据需求选择调用的策略对象
class Context {
private $strategyObj = '';
public function context(Strategy $strategyObj){
$this->strategyObj = $strategyObj;
}
public function contextInterface(){
$this->strategyObj ->strtegyInterface();
}
}

策略模式就是用来封装算法的,但在实践中,我们发现可以用它来封装几乎所有任何类型的规则,只要在分析过程中听到需要在不同时间应用不同的业务规则.就可以考虑使用策略模式处理这种变化的可能性

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容