橋接模式Bridge

2021-10-08 11:19:51 字數 2316 閱讀 2241

橋接模式,是把***抽象類*** 與 ***介面***連線起來,這兩種物件可以擁有無數個繼承、實現物件,這兩種物件之間可以任意調換,產生不同的功能;

被橋接的介面;

/** * 形狀,提供不同的形狀功能

/** * 提供乙個圓形

/** * 提供乙個橢圓形

/** * 提供乙個三角形

* * @author:wjm

* @date:2020/7/1 00:12

*/public class square implements shape

}

被橋接的抽象類,注:抽象類中引入介面的依賴

/** * 畫筆,提供可以畫出不同形狀的畫筆

/** * 字跡為黑色的畫筆

/** * 字跡為白色的畫筆

* * @author:wjm

* @date:2020/7/1 00:18

*/public class whitepen extends pen

@override

public void draw()

}

應用;

/** * 應用

* * @author:wjm

* @date:2020/7/1 00:21

*/public class test * 形狀集合= * 那麼這兩個集合的笛卡爾積為 * 【 * (黑,圓形), (黑,橢圓形), (黑,三角形), * (白,圓形), (白,橢圓形), (白,三角形) * 】

*///白畫筆能畫出的所有圖案

new whitepen(new circular()).draw();

new whitepen(new oval()).draw();

new whitepen(new square()).draw();

//黑畫筆能畫出的所有圖案

new blackpen(new circular()).draw();

new blackpen(new oval()).draw();

new blackpen(new square()).draw();

}}

橋接模式之所以可以實現被橋接的物件之間相互變換呼叫,核心在於抽象類裡注入了介面物件;

區別於策略模式:

策略模式與橋接模式高度相似;

策略與橋接各有特點,不分好壞,需根據實際情況使用;

橋接模式(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 橋接模式

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