設計模式之橋接模式的學習思考

橋接模式(BridgePattern)是設計模式中結構型模式的一種,所以,它也是通過繼承組合的關係來實現。

橋接模式是用於把抽象化和實現化解耦,即增加雙方的獨立性和靈活性。具體來說:

  1. 創建接口和實現接口的類,這是來實現功能的
  2. 創建抽象類和繼承類,這是表現功能的
  3. 兩者之間的連接是通過將接口放入抽象類中,作爲成員變量

生活中有很多這樣的模式,比如開關,其表現和具體實現是分離的,我們只能通過開關,而不知道具體實現細節。

寫個小例子來加深印象

小例子:我們都知道智能機器人是有許多功能的,我們也可以將其功能的具體實現和功能表現來分離來寫,只能看到機器人的動作表現,不知道如何實現。

interface FunctionRobert{           //該接口規定要實現的功能
    public void Function(String s);
}

class Sit implements FunctionRobert{    //實現該接口的類

    @Override
    public void Function(String s) {
        System.out.println(s);
    }

}

class Walk implements FunctionRobert{       //實現該接口的類

    @Override
    public void Function(String s) {
        System.out.println(s);
    }

}

abstract class ActionRobert{        //抽象方法規定表示方法
    FunctionRobert functionRobert;  //接口型對象作爲成員變量
    ActionRobert(FunctionRobert functionRobert){
        this.functionRobert=functionRobert;
    }
    abstract void action();
}

class Play extends ActionRobert{    //繼承抽象類的類實現表現
    Play(String s1,FunctionRobert functionRobert) {
        super(functionRobert);
        this.s1=s1;
    }
    void action(){
        functionRobert.Function(s1);
    }
    private String s1;

}
public class BridgePatternDemo {

    public static void main(String[] args) {
        ActionRobert sit=new Play("機器人坐下了",new Sit());
        ActionRobert walk=new Play("機器人走路",new Walk());
        sit.action();
        walk.action();
    }

}

輸出:

機器人坐下了
機器人走路

總結:

  1. 接口作爲抽象類的成員(組合)
  2. 應用了多態:接口回調
  3. 與適配器模式相比,適配器模式較複雜一點,且適配器更專注的是功能的增加
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章