该文章属于《编程中的那些经典套路——设计模式汇总》系列,并且以下内容基于语言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:站内发给小明普通消息:回家吃饭
?>
外部调用的时候,只需要选择并实例化自己需要的类,然后赋值给桥接器的属性里,最后就交给桥接器里面的逻辑吧,它会整合出一份你所需要的结果,这就是桥接模式
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。