• php设计模式-桥接模式


    使用情景:系统通知用户,通知方式有站内信,邮件,手机短信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:普通-吃饭
    邮件:紧急-着火
    

      

  • 相关阅读:
    装饰者模式
    代理模式
    享元模式
    模板模式
    命令模式
    建造者模式
    单例模式
    观察者模式
    迭代器模式
    访问者模式
  • 原文地址:https://www.cnblogs.com/xiangdongsheng/p/13369743.html
Copyright © 2020-2023  润新知