该文章属于《编程中的那些经典套路——设计模式汇总》系列,而且如下内容基于语言PHPphp
今天来谈谈桥接模式,桥接模式的功能在于将两个本来不相关的类结合在一块儿,而后利用两个类中的方法和属性,输出一份新的结果。编程
如图:segmentfault
来看下具体代码吧:设计模式
桥接模式.phpthis
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:站内发给小明普通消息:回家吃饭 ?>
外部调用的时候,只须要选择并实例化本身须要的类,而后赋值给桥接器的属性里,最后就交给桥接器里面的逻辑吧,它会整合出一份你所须要的结果,这就是桥接模式spa