策略模式:
将一组特定的行为和算法封装成类,以适应某些特定的上下文环境;
实际应用举例,假如一个电商网站系统,针对男性女性用户要各自跳转到不同的商品类目,并且所有广告位展示不同的广告。
UserStrategy.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免费学习笔记(深入)”;
Magento是一套专业开源的PHP电子商务系统。Magento设计得非常灵活,具有模块化架构体系和丰富的功能。易于与第三方应用系统无缝集成。Magento开源网店系统的特点主要分以下几大类,网站管理促销和工具国际化支持SEO搜索引擎优化结账方式运输快递支付方式客户服务用户帐户目录管理目录浏览产品展示分析和报表Magento 1.6 主要包含以下新特性:•持久性购物 - 为不同的
0
<?<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
<?<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>?>index.php
<span>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><span>$page</span> = <span>new</span><span> 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怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号