首页 > Web开发 > 详细

php 策略类模式

时间:2020-07-31 18:45:35      阅读:86      评论:0      收藏:0      [点我收藏+]
应用场景:对外提供一个接口,在不改成接口基础上,通过改变环境类来实现不同调用方法
如选择不同支付方式,抽奖机率
<?php
//定义一个抽象策略类,他的主要目的就是规范一个必须要实现的方法,环境类依赖这个接口进行编程
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();

php 策略类模式

原文:https://www.cnblogs.com/shineen/p/13411249.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!