PHP设计模式系列-策略模式

策略模式:

策略模式设计帮助构建的对象不必自身包含逻辑,而是能够根据需要利用其他对象中的算法。

使用场景:

例如有一个CD类,我们类存储了CD的信息。

原先的时候,我们在CD类中直接调用getCD方法给出XML的结果

随着业务扩展,需求方提出需要JSON数据格式输出

这个时候我们引进了策略模式,可以让使用方根据需求自由选择是输出XML还是JSON

代码实例:

//策略模式

//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 .= '';

$xml .= '' .serialize($return_data). '';

$xml .= '';

return $xml;

}

}

$cd = new cd('cd_1', 'cd_1');

echo $cd->getCd(new json);

echo $cd->getCd(new xml);

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190126A013ED00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券