Android設計模式之橋接模式

DroidMind發表於2016-07-17

特點:
將抽象部分與實現部分分離,使他們都可以獨立地進行變化。為了達到讓抽象部分和實現部分獨立變化的目的,抽象部分會擁有實現部分的介面物件,有了實現部分的介面物件之後,就能夠通過這個介面來呼叫具體實現部分的功能。橋接在程式上就體現成了抽象部分擁有實現部分的介面物件,實現了一種橋接關係。橋接模式中的橋接是一個單方向的關係,只能夠抽象部分去使用實現部分的物件

這裡寫圖片描述

  • 抽象化(Abstraction)角色:抽象化給出的定義,並儲存一個對實現化物件的引用。 修正抽象化(Refined Abstraction)角色:擴充套件抽象化角色,改變和修正父類對抽象化的定義。
  • 實現化(Implementor)角色:這個角色給出實現化角色的介面,但不給出具體的實現。必須指出的是,這個接 口不一定和抽象化角色的介面定義相同,實際上,這兩個介面可以非常不一樣。實現化角色應當只給出底層操作,而抽象化角色應當只給出基於底層操作的更高一層的操作。
  • 具體實現化(ConcreteImplementor)角色:這個角色給出實現化角色介面的具體實現。

抽象部分:

public abstract class Abstraction {
    private Implementor implementor;

    public Abstraction(Implementor implementor) {
        this.implementor = implementor;
    }

    public void operation() {
        implementor.operationImpl();
    }
}

public class RefinedAbstraction extends Abstraction{
    public RefinedAbstraction(Implementor implementor) {
        super(implementor);
    }

    public void refinedOperation() {
        //對 Abstraction 中的 operation 方法進行擴充套件
    }
}

實現部分:

public interface Implementor {
    void operationImpl();
}

public class ConcreteImplementorA implements Implementor{
    @Override
    public void operationImpl() {
        //具體實現
    }
}

public class ConcreteImplementorB implements Implementor{
    @Override
    public void operationImpl() {
        //具體實現
    }
}

Android中的橋接模式

1、Window 與 WindowManager 之間的橋接模式

這裡寫圖片描述

2、AbsListView 與 ListAdapter 之間的橋接模式

這裡寫圖片描述

參考文章:
Android設計模式原始碼解析之橋接模式

java/android 設計模式學習筆記(8)—橋接模式

歡迎關注微信公眾號:DroidMind
精品內容獨家釋出平臺
Android設計模式之橋接模式

呈現與部落格不一樣的技術乾貨

相關文章