模式設(shè)計c#--結(jié)構(gòu)型--Bridge
名稱 | Bridge |
結(jié)構(gòu) | ![]() |
意圖 | 將抽象部分與它的實現(xiàn)部分分離,使它們都可以獨立地變化。 |
適用性 |
|
Code Example
























































































































posted on 2006-01-03 15:43 夢在天涯 閱讀(963) 評論(2) 編輯 收藏 引用 所屬分類: Design pattern
{C++ 基礎(chǔ)} {C++ 高級} {C#界面,C++核心算法} {設(shè)計模式} {C#基礎(chǔ)}
名稱 | Bridge |
結(jié)構(gòu) | ![]() |
意圖 | 將抽象部分與它的實現(xiàn)部分分離,使它們都可以獨立地變化。 |
適用性 |
|
posted on 2006-01-03 15:43 夢在天涯 閱讀(963) 評論(2) 編輯 收藏 引用 所屬分類: Design pattern
在什么情況下應(yīng)當(dāng)使用橋梁模式
根據(jù)上面的分析,在以下的情況下應(yīng)當(dāng)使用橋梁模式:
如果一個系統(tǒng)需要在構(gòu)件的抽象化角色和具體化角色之間增加更多的靈活性,避免在兩個層次之間建立靜態(tài)的聯(lián)系。
設(shè)計要求實現(xiàn)化角色的任何改變不應(yīng)當(dāng)影響客戶端,或者說實現(xiàn)化角色的改變對客戶端是完全透明的。
一個構(gòu)件有多于一個的抽象化角色和實現(xiàn)化角色,系統(tǒng)需要它們之間進(jìn)行動態(tài)耦合。
雖然在系統(tǒng)中使用繼承是沒有問題的,但是由于抽象化角色和具體化角色需要獨立變化,設(shè)計要求需要獨立管理這兩者。 回復(fù) 更多評論
橋梁模式的用意
【GOF95】在提出橋梁模式的時候指出,橋梁模式的用意是"將抽象化(Abstraction)與實現(xiàn)化(Implementation)脫耦,使得二者可以獨立地變化"。這句話有三個關(guān)鍵詞,也就是抽象化、實現(xiàn)化和脫耦。
抽象化
存在于多個實體中的共同的概念性聯(lián)系,就是抽象化。作為一個過程,抽象化就是忽略一些信息,從而把不同的實體當(dāng)做同樣的實體對待【LISKOV94】。
實現(xiàn)化
抽象化給出的具體實現(xiàn),就是實現(xiàn)化。
脫耦
所謂耦合,就是兩個實體的行為的某種強(qiáng)關(guān)聯(lián)。而將它們的強(qiáng)關(guān)聯(lián)去掉,就是耦合的解脫,或稱脫耦。在這里,脫耦是指將抽象化和實現(xiàn)化之間的耦合解脫開,或者說是將它們之間的強(qiáng)關(guān)聯(lián)改換成弱關(guān)聯(lián)。
將兩個角色之間的繼承關(guān)系改為聚合關(guān)系,就是將它們之間的強(qiáng)關(guān)聯(lián)改換成為弱關(guān)聯(lián)。因此,橋梁模式中的所謂脫耦,就是指在一個軟件系統(tǒng)的抽象化和實現(xiàn)化之間使用組合/聚合關(guān)系而不是繼承關(guān)系,從而使兩者可以相對獨立地變化。這就是橋梁模式的用意。
回復(fù) 更多評論
只有注冊用戶登錄后才能發(fā)表評論。 | ||
【推薦】100%開源!大型工業(yè)跨平臺軟件C++源碼提供,建模,組態(tài)!
![]() |
||
相關(guān)文章:
|
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
|
||
|