編程中的那些套路——關於橋接模式

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

該文章屬於《編程中的那些經典套路——設計模式彙總》系列設計

相關文章
相關標籤/搜索