编程中的那些套路——关于桥接模式

大菌说事

该文章属于《编程中的那些经典套路——设计模式汇总》系列,并且以下内容基于语言PHP

今天来谈谈桥接模式,桥接模式的功能在于将两个原本不相关的类结合在一起,然后利用两个类中的方法和属性,输出一份新的结果。

如图:
画图展示让你更懂

来看下具体代码吧:

桥接模式.php

class Info {
 
     public $lev; //发送等级:普通,重要,特级
 
     public $target;//通过什么方式发送
 
    //实际发送方法
 
     public function Sending($to,$content){
 
         //先把消息等级确定了
 
         $content = $this->lev->msg($content);
 
         $target = $this->target->send($to);
 
         return $target.$content;
 
     }
 
}
 
//普通消息
 
class CommonInfo {
 
    public function msg($content){
 
        return '普通消息:' . $content;
 
    }
 
}
 
//重要消息
 
class ImportInfo {
 
    public function msg($content){
 
        return '重要消息:' . $content;
 
    }
 
}
 
//特别消息
 
class SpecialInfo {
 
    public function msg($content){
 
        return '特别消息:' . $content;
 
    }
 
}
 
//站内发送方式
 
class ZnSend {
 
    public function send($to){
 
        return '站内发给'. $to;
 
    }
 
}
 
//QQ发送方式
 
class QQSend {
 
    public function end($to){
 
        return 'QQ发给'. $to;
 
    }
 
}
 
//Email发送方式
 
class EmailSend {
 
    public function send($to){
 
        return '邮箱发给'. $to;
 
    }
 
}
 
$info = new Info();//实例化桥接类
 
$info->target = new ZnSend(); //实例化发送方式
 
$info->lev = new CommonInfo();//实例化消息等级
 
print_r($info->Sending('小明','回家吃饭'));//调用桥接类方法Sending,让ZnSend类和CommonInfo类结合
 
//output:站内发给小明普通消息:回家吃饭
 
?>
 

外部调用的时候,只需要选择并实例化自己需要的类,然后赋值给桥接器的属性里,最后就交给桥接器里面的逻辑吧,它会整合出一份你所需要的结果,这就是桥接模式

该文章属于《编程中的那些经典套路——设计模式汇总》系列

阅读 2.3k

傍晚八点半
请你指出我文章中的错误与不足,谢谢
4.9k 声望
681 粉丝
0 条评论
你知道吗?

4.9k 声望
681 粉丝
宣传栏