該文章屬於《編程中的那些經典套路——設計模式彙總》系列,而且如下內容基於語言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