策略
来源:互联网 发布:c 解析json字符串 编辑:程序博客网 时间:2024/06/08 11:10
叙述
示例
<?php/*** 抽象算法,算法的选择交给Client*/interface TravelStrategy { public function travelAlgorithm();}class AirPlanelStrategy implements TravelStrategy { public function travelAlgorithm() { echo "travel by AirPlain", "\n"; }}class TrainStrategy implements TravelStrategy { public function travelAlgorithm() { echo "travel by Train", "\n"; }}class BicycleStrategy implements TravelStrategy { public function travelAlgorithm() { echo "travel by Bicycle", "\n"; }}class PersonContext { private $_strategy=null; public function __construct(TravelStrategy $strategy) { $this->_strategy = $strategy; } public function setStrategy(TravelStrategy $strategy) { $this->_strategy = $strategy; } public function travel() { $this->_strategy->travelAlgorithm(); }}/*** 客户端需要自己 选择算法* 工厂模式则是 只需客户传一个标识,就构造一个完成的对象,不需要了解具体的算法,但灵活性低了一点*/class Client { public static function main() { $person = new PersonContext(new AirPlanelStrategy()); $person->travel(); $person->setStrategy(new TrainStrategy()); $person->travel(); }}Client::main();
0 0
- 策略
- 策略
- 策略
- 网络营销策略
- 股票投资策略
- 分治策略
- 战略策略
- 策略模式
- 策略模式
- 系统安全策略
- 策略模式
- 网络安全策略
- 策略模式
- 网络营销策略
- 策略模式
- 策略路由
- 微软策略
- 测试策略
- ffmpeg常用基本命令(转)
- 模板
- java第一课——helloworld
- Java Socket编程——TCP协议(一)
- centos下安装redis
- 策略
- base64编解码
- eval 与 bind 区别
- Android OTA升级原理和流程分析(三)---Android系统的三种启动模式
- 第三周 阅读程序
- 职责链
- jdk1.8中使用sql server
- 追逐自己的梦想----------辅助制作第二十三课:挂机选项卡的实现
- extern C的作用详解