您的位置:首页 > 编程语言 > PHP开发

php设计模式 策略模式

2016-03-01 16:25 721 查看
策略模式:

将一组特定的行为和算法封装成类,以适应某些特定的上下文环境;

实际应用举例,假如一个电商网站系统,针对男性女性用户要各自跳转到不同的商品类目,并且所有广告位展示不同的广告。

UserStrategy.php

<?php
namespace Baobab;

interface UserStrategy{
function showAd();
function showCategory();
}
?>


FemaleUserStrategy.php

<?php
namespace Baobab;

class FemaleUserStrategy implements UserStrategy{
function showAd(){
echo '2016新款女装';
}
function showCategory(){
echo '女装';
}
}

?>


MaleUserStrategy.php

<?php
namespace Baobab;

class MaleUserStrategy implements UserStrategy{
function showAd(){
echo 'Iphone6s plus';
}
function showCategory(){
echo '电子产品';
}
}

?>


Page.php

namespace Baobab;

class Page{
protected $strategy;
function Index(){
$this->strategy->showAd();
echo '<br/>';
$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,依赖倒置、控制反转
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: