PHP设计模式—策略模式
发布时间:2020-12-13 21:24:14 所属栏目:PHP教程 来源:网络整理
导读:? 定义: 策略模式(Strategy) :它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。 ? 结构: Strategy(策略类) :定义所有支持的算法的公共接口。 ConcreteStrategy(具体策略类) :封装了具体
? 定义:策略模式(Strategy):它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。 ? 结构:
? 代码实例:/** * Strategy.php(策略类) * Class Strategy */ abstract class Strategy { * * 算法方法 */ public function doInterface(); } * * ConcreteStrategyA.php(具体策略类) * Class ConcreteStrategyA class ConcreteStrategyA extends* * 算法A具体实现方法 doInterface() { // TODO: Implement doInterface() method. return "使用算法An"; } } * * ConcreteStrategyB.php(具体策略类) * Class ConcreteStrategyB class ConcreteStrategyB * * 算法B具体实现方法 return "使用算法Bn"* * Class Context Context { private $strategy; function __construct(Strategy ) { $this->strategy = ; } * * 根据具体的策略对象,调用相应的算法的方法 getInterface() { return $this->strategy->doInterface(); } } 客户端调用: 算法A $strategyA = new Context(new ConcreteStrategyA()); echo $strategyA->getInterface(); echo '<br>'; 算法B $strategyB = ConcreteStrategyB()); $strategyB->getInterface(); 结果: 使用算法A
使用算法B
?总结:
? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |