橋接模式(Bridge)

2022-09-12 08:27:15 字數 1130 閱讀 4560

橋接模式(bridge),將抽象部分與它的實現部分分離,使它們獨立地變化。

什麼叫抽象與它的實現分離,這並不是說,讓抽象類與其派生類分離,因為這沒有任何意義。實現指的是抽象類和它的派生類用來實現自己的物件。

橋接模式的核心意圖就是把這些實現獨立出來,讓它們各自地變化。這就使得每種實現的變化不會影響其他實現,從而達到應對變化的目的。

結構圖

//implementor類

abstract class implementor

//concreteimplementora和concreteimplementorb等派生類

class concreteimplementora:implementor

}class concreteimplementorb : implementor

}//abstraction類

class abstraction

public virtual void operation()

}//refinedabstraction類

class refinedabstraction : abstraction

}

客戶端實現

static void main(string args)

實現系統可能有多角度分類,每一種分類都有可能變化,那麼就把這種多角度分離出來讓它們獨立變化,減少它們之間的耦合。

合成/聚合復用原則(carp)

盡量使用合成/聚合,盡量不要使用類繼承。

在乙個新的物件裡面使用一些已有的物件,使之成為新物件的一部分,新物件通過向這些物件的委派達到復用已有功能的目的。

合成(composition)和聚合(aggregation)都是關聯的特殊種類。聚合表示一種弱的『擁有』關係,體現的是a物件可以包含b物件,但b物件不是a物件的一部分;合成則是一種強的『擁有』關係,體現了嚴格的部分和整體的關係,部分和整體的生命週期一樣。

優點:優先使用物件的合成/聚合將有助於你保持每乙個類被封裝,並被集中在單個任務上。這樣類和類繼承層次會保持較小規模,並且不太可能增長為不可控制的龐然大物。

橋接模式(Bridge)

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

Bridge橋接模式

include using namespace std bridge橋接模式。class base class son1 public base 這是基類具體方法實現。class son2 public base 如果此時有了新的模組加入,或者說要實現基類的另外一些 方法,我們在這裡只需要重新建造乙...

Bridge 橋接模式

物件和行為自由組合。當不同的物件具有多種可列舉的行為,且不同行為的物件可被描述為不同的具體的物件,不同的行為與物件結合將產生大量具有差異性具體物件,為了防止對這些具體物件的列舉,將差異性的行為與物件本身分離出來。比如遊戲裡面的英雄的裝備與動作 描述不同汽車的行為 汽 油 電等不同發動機的執行方式,見...