首頁  >  文章  >  後端開發  >  PHP設計模式之 橋接模式

PHP設計模式之 橋接模式

不言
不言原創
2018-04-18 11:53:001707瀏覽

這篇文章介紹的內容是關於PHP設計模式之橋接模式,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

橋接模式(Bridge) 是一種物件結構型模式,將抽象部分與實作部分分離,使它們都可以獨立地變化。
 總結來說就是在多維度上,各自變化互不影響,透過橋接建立一定關聯,進行動態組合, 這種模式的彈性比較高。

 就類似我們去吃蓋澆飯裡面配各種菜一樣,例如青椒肉絲蓋澆飯,土豆牛肉蓋澆飯。

 主食:飯,麵。
 輔食:青椒肉絲,馬鈴薯牛肉。

 主食,輔食兩個不同的維度,各自可以繼續添加種類,例如:輔食可以再添加一個韭菜雞蛋等,又可以相互組合。

 記錄程式碼如下:

       
    /** 抽象一个主食类      
 *  abstract Food          
 */    
abstract Class Food  
{  
    public $dishes; // 一开始会赋值对象  
    abstract function MakeFood();  
}  
  
/** 盖浇饭类 继承主食类     
 *  Rice          
 */    
Class Rice extends Food  
{  
    function MakeFood()  
    {  
        $this->dishes->MakeDishes();  
        echo "盖浇饭<br/>";  
    }  
}  
  
/** 盖浇面类 继承主食类     
 *  Noodle          
 */  
Class Noodle extends Food  
{  
    function MakeFood()  
    {  
        $this->dishes->MakeDishes();  
        echo "盖浇面<br/>";  
    }  
}  
  
  
/** 菜肴接口     
 *  interface Dishes          
 */  
interface Dishes  
{  
    function MakeDishes();  
}  
  
/** 青椒肉丝类 继承菜肴接口   
 *  QJRS          
 */  
Class QJRS implements Dishes  
{  
   function MakeDishes(){  
       echo "青椒肉丝";  
   }      
}  
  
/** 土豆牛肉类 继承菜肴接口   
 *  TDNR          
 */  
Class TDNR implements Dishes  
{  
   function MakeDishes(){  
       echo "土豆牛肉";  
   }      
}
<?php  
  
// 桥接模式 index.php  
header("Content-Type:text/html;charset=utf-8");  
require_once "Bridge.php";    
  
// 要一份盖浇饭  
$rice = new Rice();  
  
// 浇头要 青椒肉丝  
$rice->dishes = new QJRS();  
  
// 上菜  
$rice->MakeFood();  
  
// 同样的要一份盖浇饭  
$rice = new Rice();  
  
// 这次改了浇头要 土豆牛肉  
$rice->dishes = new TDNR();  
  
// 上菜  
$rice->MakeFood();


#輸出結果:

青椒肉絲蓋澆飯
馬鈴薯牛肉蓋澆飯

相關推薦:

PHP設計模式之適配器模式

PHP設計模式之建造者模式

#PHP設計模式之原型模式


以上是PHP設計模式之 橋接模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn