策略模式
定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
Demo:
<?php
abstract class baseAgent { //抽象策略类
abstract function PrintPage();
}
//用于客户端是IE时调用的类(环境角色)
class ieAgent extends baseAgent {
function PrintPage() {
return 'IE';
}
}
//用于客户端不是IE时调用的类(环境角色)
class otherAgent extends baseAgent {
function PrintPage() {
return 'not IE';
}
}
class Browser { //具体策略角色
public function call($object) {
return $object->PrintPage ();
}
}
$bro = new Browser ();
echo $bro->call ( new ieAgent () );
?>
请关注我的订阅号

本文深入探讨了策略模式的概念,它允许算法家族的封装和互换,使算法的变化独立于使用算法的客户端。通过PHP代码示例,展示了如何实现策略模式,包括抽象策略类、具体策略角色及环境角色。
3143

被折叠的 条评论
为什么被折叠?



