一座橋勾起你我的故事——橋接模式

今天來總結設計模式:橋接模式

一、引言

橋接模式是什麼?爲什麼出現橋接模式?橋接模式怎麼實現?

  1. 橋接模式可以理解爲把程序中抽象和實現分開,中間通過一座橋進行聯繫,其他地方互不干擾
  2. 爲什麼出現橋接模式?可以看以下類圖

在這裏插入圖片描述
類圖中一共有3個接口,小米品牌,華爲品牌繼承於手機接口。小米和華爲各有3種種類的手機。
假如我們現在要增加蘋果品牌的手機,是不是應該做成如下圖:
在這裏插入圖片描述
很明顯,手機品牌(小米,華爲,蘋果)和手機樣式(全面屏,摺疊屏,翻蓋)耦合在一起了,不利於我們程序的擴展。由此引出橋接模式。

二、橋接模式的實現

橋接模式的實現很簡單,直接上類圖:
在這裏插入圖片描述
很明顯,相信大家已經看到了,沒錯,就是中間橫線,聚合的那條橋。左邊是具體的實現類,右邊是抽象的手機品牌,把實現和抽象分離開,正是橋接模式的思想。
下面給大家實現一波代碼:

/**
 * 品牌接口
 */
public interface Brand {
}


/**品牌實現類
 * 小米
 */
public class XiaoMi implements Brand {

}

/**
 * 華爲
 */
class HuaWei implements Brand{

}
/*
蘋果
 */
class Iphone implements Brand{

}

以上是橋的右邊也就是抽象部分
接下來展示橋的左邊,實現部分


/**
 * 手機
 */
public abstract class Phone {
    private Brand brand;//聚合品牌,相當於橋

    //構造方法
    public Phone(Brand brand){
        this.brand=brand;
    }
}


//-------------------------實現類-----------------------------
/**
 * 全面屏
 */
public class QuanMianPing extends Phone{
    public QuanMianPing(Brand brand) {
        super(brand);
    }
}

/**
 * 摺疊屏
 */
class ZheDiePing extends Phone{
    public ZheDiePing(Brand brand) {
        super(brand);
    }
}

class FanGai extends Phone{
    public FanGai(Brand brand) {
        super(brand);
    }
}
//Min方法如下

在這裏插入圖片描述

可以看出,每種手機樣式(全面屏,摺疊屏,翻蓋)都聚合了一個品牌對象,因此,現在如果要增加一種樣式或者手機品牌,只需要在橋的左邊,或者右邊添加類即可。實現樣式(實現)和品牌(抽象)分開。

三、結束

以上就是橋接模式的全部內容了,覺得寫得還算通俗易懂的各位朋友動動小手點贊,謝謝大家。
本文部分知識點來自於b站韓平順老師的23種設計模式(點這裏)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章