橋接模式 多層分支也不怕

2021-07-22 13:04:17 字數 1770 閱讀 3040

在程式設計中,我們會經常遇見多層級分支的情況,顯然用繼承是不合適的,子類和父類的耦合過高會給後期**的維護帶來極大的麻煩,為了解決這個問題,我們可以使用橋接模式。簡單來說,橋接模式就是將每個分支單獨分開,然後通過委託呼叫的方式實現橋接。下面通過乙個例子來演示橋接模式的用法。

首先定義系統層級的分支:

abstract

class

system

abstract

function

run();

}class

io***tends

system

}class

android

extends

system

}

定義系統服務層級分支:

abstract

class

service

abstract

function

start

();}

class

wlan

extends

service

}class

media

extends

service

}

abstract

class

abstract

function

run();

}class

meiyan

extends

function

run()

}class

wechat

extends

function

run()

}class

youku

extends

function

run()

}class

localplayer

extends

function

run()

}

$ios

=new ios();

$android

=new android();

$wlan

=new wlan();

$media

=new media();

$youku

=new youku();

$meiyan

=new meiyan();

//設定ios系統要啟動的服務和執行的軟體

$ios

->setservice($wlan);

$wlan

//設定android系統要啟動的服務和執行的軟體

$android

->setservice($media);

$media

$ios

->run();

echo "";

$android

->run();

執行結果如圖:

當我們需要在對應的層級增加分支時,只需要新增對應的繼承抽象層級類的子類即可,當需要新增層級的時候,我們只需要在上一層級中新增新層級型別的物件屬性和設定該物件屬性的方法,然後在上一層級的執行方法中在執行上一層級的處理**後新增呼叫新層級執行方法。

當你的**中需要處理多層級分支的情況時,記得橋接模式。

橋接模式(Bridge)

個人理解 橋接模式的精髓在於維護乙個抽象物件,並抽取這個物件的抽象部分。uml類圖 實現 public inte ce icomponent public class componenta icomponent public class componentb icomponent public ab...

bridge pattern 橋接模式

bridge模式又稱為handle body模式。在軟體系統中,經常面臨著 某些結構複雜的物件 的建立工作,由於需求的變化,這些物件經常面臨著劇烈的變化,但是他們卻擁有比較穩定一致的介面。大部分建立型模式,就是為了解決如何向 客戶程式 隔離出 這些易變物件 從而使得 依賴這些易變物件的客戶程式 不隨...

php 橋接模式

交接模式之模擬毛筆 1 實現類介面 inte ce color 2 具體實現顏色類 class red implements color class green implements color class blue implements color class white implements c...