設計模式--適配器模式

Java工程源碼

類圖

這裏寫圖片描述


定義
將一個類的接口變換成客戶端期待的另一種接口,從而使原本因接口不匹配而無法一起工作的兩個類能夠一起工作


優點
- 適配器角色可以讓兩個沒有任何關係的類在一起運行
- 增加了類的透明性, target 目標角色具體實現委託給了源角色,這對高層模式是透明的
- 提高了類的複用度,源角色在原有系統中還是可以正常使用
- 靈活性非常好 適配器類似於一個靈活的構件,隨時可以卸載


使用場景
在開發階段不用考慮它,主要是在擴展應用中


擴展
對象適配器類圖如上圖所示,它與類適配器的區別是:類適配器是類間繼承,對象適配器是對象間的合成 ( 關聯 ) 關係。適配器模式是一個補償模式,通常用來解決接口不相容的問題


目標角色

public interface Target {
    // 目標角色有自己的方法
    void request();
}

目標角色實現類

public class ConcreteTarget implements Target {
    @Override
    public void request() {
        System.out.println("目標角色 doSomething");
    }
}

原角色

public class Adaptee {
    // 原有的業務邏輯
    public void doSomething() {
        System.out.println("原角色 doSomething");
    }
}

適配器角色

public class Adapter extends Adaptee implements Target {
    @Override
    public void request() {
        super.doSomething();
    }
}

場景類

public class Client {
    public static void main(String[] args) {
        // 原有的業務邏輯
        Target target1 = new ConcreteTarget();
        // 目標角色執行方法
        target1.request();
        // 增加了適配器角色後的業務邏輯
        Target target2 = new Adapter();
        // 目標角色執行方法,但是實際執行的是原角色的方法
        target2.request();
        //Adapter把Adaptee變成了Target,並且保持了原始的業務邏輯
    }
}

運行結果

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