策略模式:
将一组特定的行为和算法封装成类,以适应某些特定的上下文环境;
实际应用举例,假如一个电商网站系统,针对男性女性用户要各自跳转到不同的商品类目,并且所有广告位展示不同的广告。
userstrategy.php
femaleuserstrategy.php
maleuserstrategy.php
page.php
namespace baobab;class page{
protected$strategy;
function index(){
$this->strategy->showad();
echo ”;
$this->strategy->showcategory();
}
function setstrategy(\baobab\userstrategy $strategy){
$this->strategy = $strategy;
}
}
index.php
$page = new baobab\page();
if (isset($_get[‘female’])){
$strategy = new baobab\femaleuserstrategy();
}else{
$strategy = new baobab\maleuserstrategy();
}
$page->setstrategy($strategy);
$page->index();
使用策略模式可实现ioc,依赖倒置、控制反转
以上就介绍了php设计模式 策略模式,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。