PHP设计模式之策略模式
2018-06-22 05:17:55来源:未知 阅读 ()
策略模式(Strategy pattern)是行为类模式中的一个类型。行为类模式用来说明一个应用是如何运作的。
策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
- 封装:把行为用接口封装起来,我们可以把那些经常变化的部分,从当前的类中单独取出来,用接口进行单独的封装。
- 互相替换:我们封装好了接口,通过指定不同的接口实现类进行算法的变化。
<?php /** * 定义接口 */ interface car{ public function run(); } /** * 接口算法实现 * @return [type] [description] */ class bmwCar implements car{ public function run(){ echo "宝马汽车在路上奔驰\n"; } } /** * 接口算法实现 * @return [type] [description] */ class audiCar implements car{ public function run(){ echo "奥迪汽车在路上奔驰\n"; } } /** * 使用不同算法的类 * @param integer $speed [description] */ class chooseCar{ public $speed; function __construct($speed=60){ $this->speed = $speed; } function start($brand){ $car = null; switch($brand){ case "bmw": $car = new bmwCar(); break; case "audi": $car = new audiCar(); break; default: $car = new bmwCar(); } $car->run(); echo "时速为{$this->speed}km/h"; } } $car = new chooseCar(180); $car->start("audi");
//输出
奥迪汽车在路上奔驰 时速为180km/h
策略模式会立即改变一个算法,当我们使用的类比较简单,但是又相互不关联,只是在特定行为上有所差异的场景下,策略模式就会十分有用。
就在编程领域之外,有许多例子是关于策略模式的。例如:
如果我需要在早晨从家里出发去上班,我可以有几个策略考虑:我可以乘坐地铁,乘坐公交车,走路或其它的途径。每个策略可以得到相同的结果,但是使用了不同的资源。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:对象克隆(clone)实例详解
- PHP写UltraEdit插件脚本实现方法 2020-03-29
- php 带逗号千位符数字的处理方法 2020-03-28
- PHP三元运算符的结合性介绍 2020-03-28
- PHP静态延迟绑定和普通静态效率的对比 2020-03-28
- 基于php流程控制语句和循环控制语句 2020-03-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash