策略模式又称为政策模式,属于行为型设计模式<br />定义一系列的算法,把他们一个个封装起来,并且使他们相互替换,本模式使得算法可独立于使用他的客户而改变<br />策略模式跟简单工厂很类似,看着都差不多,<br />工厂模式属于创造型模式,用来创造对象,返回的是new出来的对象那个,需要调用什么方法,由客户端决定<br />策略模式属于行为型模式,通过执行上下文,将调用的函数封装在一起,客户端只需要执行上下文的方法就行<br />简单理解,工厂返回对象,自己想怎么用怎么用,策略执行固定的方法,<br />
interface Message{ public function send();}class BaiduYunMessage implements Message{ function send() { echo '百度云发送信息!'; }}class AliYunMessage implements Message{ public function send() { echo '阿里云发送信息!'; }}class JiguangMessage implements Message{ public function send() { echo '极光发送信息!'; }}class MessageContext{ private $message; public function __construct(Message $msg) { $this->message = $msg; } public function SendMessage() { //执行定义好的函数 $this->message->send(); }}$bdMsg = new BaiduYunMessage();$msgCtx = new MessageContext($bdMsg);$msgCtx->SendMessage();$alMsg = new AliYunMessage();$msgCtx = new MessageContext($alMsg);$msgCtx->SendMessage();$jgMsg = new JiguangMessage();$msgCtx = new MessageContext($jgMsg);$msgCtx->SendMessage();