首頁 > 後端開發 > php教程 > PHP橋接模式詳解及案例

PHP橋接模式詳解及案例

墨辰丷
發布: 2023-03-25 22:14:01
原創
1786 人瀏覽過

 這篇文章主要介紹PHP橋接模式詳解及案例,有興趣的朋友參考下,希望對大家有幫助。

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

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

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

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

 記錄代碼如下:

/**       
 * Created by Sublime.       
 * User: Ryan       
 * Date: 2018/1/22       
 * File:Bridge.php       
 */        
    
/** 抽象一个主食类      
 *  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設計模式之 橋接模式

#JavaScript設計模式系列六:橋接模式

linux橋接模式下配置靜態ip的方法

#

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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板