PHP设计模式系列 - 策略模式
2015-04-10 15:16
609 查看
策略模式:
策略模式设计帮助构建的对象不必自身包含逻辑,而是能够根据需要利用其他对象中的算法。
使用场景:
例如有一个CD类,我们类存储了CD的信息。
原先的时候,我们在CD类中直接调用getCD方法给出XML的结果
随着业务扩展,需求方提出需要JSON数据格式输出
这个时候我们引进了策略模式,可以让使用方根据需求自由选择是输出XML还是JSON
代码实例:
转自:http://blog.csdn.net/initphp/article/details/7760383
策略模式设计帮助构建的对象不必自身包含逻辑,而是能够根据需要利用其他对象中的算法。
使用场景:
例如有一个CD类,我们类存储了CD的信息。
原先的时候,我们在CD类中直接调用getCD方法给出XML的结果
随着业务扩展,需求方提出需要JSON数据格式输出
这个时候我们引进了策略模式,可以让使用方根据需求自由选择是输出XML还是JSON
代码实例:
<?php //策略模式 //cd类 class cd { protected $cdArr; public function __construct($title, $info) { $this->cdArr['title'] = $title; $this->cdArr['info'] = $info; } public function getCd($typeObj) { return $typeObj->get($this->cdArr); } } class json { public function get($return_data) { return json_encode($return_data); } } class xml { public function get($return_data) { $xml = '<?xml version="1.0" encoding="utf-8"?>'; $xml .= '<return>'; $xml .= '<data>' .serialize($return_data). '</data>'; $xml .= '</return>'; return $xml; } } $cd = new cd('cd_1', 'cd_1'); echo $cd->getCd(new json); echo $cd->getCd(new xml);
转自:http://blog.csdn.net/initphp/article/details/7760383
相关文章推荐
- PHP设计模式系列 - 策略模式
- PHP设计模式系列 - 策略模式
- PHP设计模式系列 - 策略模式
- PHP设计模式系列 - 策略模式
- PHP设计模式系列(一):策略模式
- (一)透过.Net框架找设计模式系列:策略模式
- 设计模式系列-策略模式 推荐
- PHP设计模式实例之(观察者模式、策略模式、简单工厂模式)
- 设计模式之Strategy(策略模式系列1)
- PHP设计模式实例之(观察者模式、策略模式、简单工厂模式)
- Php设计模式之【策略模式Strategy Pattern】
- 极速理解设计模式系列:8.策略模式(Strategy Pattern)
- 设计模式系列-策略模式
- 设计模式系列漫谈之三 - 策略模式
- 深入理解JavaScript系列(33):设计模式之策略模式
- PHP设计模式系列 - 适配器
- 设计模式系列1-----C++实现策略模式(Strategy)
- [php]php设计模式 Strategy(策略模式)
- 设计模式初学者系列-策略模式 -------为什么总是继承
- PHP设计模式实例之(观察者模式、策略模式、简单工厂模式)