策略模式:
将一组特定的行为和算法封装成类,以适应某些特定的上下文环境;
实际应用举例,假如一个电商网站系统,针对男性女性用户要各自跳转到不同的商品类目,并且所有广告位展示不同的广告。
UserStrategy.php
Magento是一套专业开源的PHP电子商务系统。Magento设计得非常灵活,具有模块化架构体系和丰富的功能。易于与第三方应用系统无缝集成。Magento开源网店系统的特点主要分以下几大类,网站管理促销和工具国际化支持SEO搜索引擎优化结账方式运输快递支付方式客户服务用户帐户目录管理目录浏览产品展示分析和报表Magento 1.6 主要包含以下新特性:•持久性购物 - 为不同的
立即学习“PHP免费学习笔记(深入)”;
<?<span>php
namespace Baobab;
</span><span>interface</span><span> UserStrategy{
</span><span>function</span><span> showAd();
</span><span>function</span><span> showCategory();
}
</span>?>FemaleUserStrategy.php
立即学习“PHP免费学习笔记(深入)”;
<?<span>php
namespace Baobab;
</span><span>class</span> FemaleUserStrategy <span>implements</span><span> UserStrategy{
</span><span>function</span><span> showAd(){
</span><span>echo</span> '2016新款女装'<span>;
}
</span><span>function</span><span> showCategory(){
</span><span>echo</span> '女装'<span>;
}
}
</span>?>MaleUserStrategy.php
立即学习“PHP免费学习笔记(深入)”;
<?<span>php
namespace Baobab;
</span><span>class</span> MaleUserStrategy <span>implements</span><span> UserStrategy{
</span><span>function</span><span> showAd(){
</span><span>echo</span> 'Iphone6s plus'<span>;
}
</span><span>function</span><span> showCategory(){
</span><span>echo</span> '电子产品'<span>;
}
}
</span>?>Page.php
立即学习“PHP免费学习笔记(深入)”;
<span><span>namespace Baobab;</span><br>class</span><span> Page{
</span><span>protected</span><span>$strategy</span><span>;
</span><span>function</span><span> Index(){
</span><span>$this</span>->strategy-><span>showAd();
</span><span>echo</span> '<br/>'<span>;
</span><span>$this</span>->strategy-><span>showCategory();
}
</span><span>function</span> setStrategy(\Baobab\UserStrategy <span>$strategy</span><span>){
</span><span>$this</span>->strategy = <span>$strategy</span><span>;
}
}
</span>index.php
立即学习“PHP免费学习笔记(深入)”;
<span>$page</span> = <span>new</span><span> Baobab\Page();
</span><span>if</span> (<span>isset</span>(<span>$_GET</span>['female'<span>])){
</span><span>$strategy</span> = <span>new</span><span> Baobab\FemaleUserStrategy();
}</span><span>else</span><span>{
</span><span>$strategy</span> = <span>new</span><span> Baobab\MaleUserStrategy();
}
</span><span>$page</span>->setStrategy(<span>$strategy</span><span>);
</span><span>$page</span>->Index();使用策略模式可实现Ioc,依赖倒置、控制反转
以上就介绍了php设计模式 策略模式,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。










