码迷,mamicode.com
首页 > Web开发 > 详细

php设计模式-桥接模式

时间:2020-07-24 09:18:59      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:extends   系统   设计模式   桥接模式   create   abs   func   ted   return   

使用情景:系统通知用户,通知方式有站内信,邮件,手机短信3种方式,信的内容分普通,紧急两种程度,为了不避免两两组合,m* n种可能的搭配,使用桥接模式

// 抽象
abstract class Info{
    protected $_send = null; // 发送器 (site, email, sms);
    public function __construct($send)
    {
        $this->_send = $send;
    }
    abstract public function createContent($content);

    public function send($content)
    {
        $this->_send->send($content); // 调用不同发送器的发送方法
    }
}

// 消息发送方式
class SiteInfo // 站内信
{
    public function send($content)
    {
        echo ‘站内信:‘ . $content;
    }
}

class EmailInfo // 邮件
{
    public function send($content)
    {
        echo ‘邮件:‘ . $content;
    }
}

class SMSInfo // 手机短信
{
    public function send($content)
    {
        echo ‘SMS:‘ . $content;
    }
}


// 消息紧急程度
class Common extends Info // 普通通知
{
    public function createContent($content)
    {
        return ‘普通-‘ . $content;
    }
}

class Urgent extends Info // 紧急通知
{
    public function createContent($content)
    {
        return ‘紧急-‘  . $content;
    }
}

$common = new Common(new SMSInfo());
$content = $common->createContent(‘吃饭‘);
$common->send($content);
echo ‘<br>‘;
$common = new Urgent(new EmailInfo());
$content = $common->createContent(‘着火‘);
$common->send($content);

  结果:

SMS:普通-吃饭
邮件:紧急-着火

  

php设计模式-桥接模式

标签:extends   系统   设计模式   桥接模式   create   abs   func   ted   return   

原文地址:https://www.cnblogs.com/xiangdongsheng/p/13369743.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!