策略模式

2018-05-13  本文已影响0人  zhyke

//策略抽象类
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();
}
}

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

上一篇 下一篇

猜你喜欢

热点阅读