91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java適配器模式怎么掌握

發布時間:2022-04-06 11:11:52 來源:億速云 閱讀:122 作者:iii 欄目:開發技術

今天小編給大家分享一下Java適配器模式怎么掌握的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

1、什么是適配器模式?

其實適配器這三個字大家應該很熟悉,我們知道蘋果公司的手機iPhone已經不提供充電插頭了,包裝盒內只有一根數據線,那么我們無法單獨使用這根數據線進行在220V的插板上充電,因此我們需要重新購買一個適配器來把插板和手機連接起來,這就是適配器。

其實在軟件設計中也可能出現,需要開發的具有某種業務功能的組件在現有的組件庫中已經存在,但它們與當前系統的接口規范不兼容,如果重新開發這些組件成本又很高,這時用適配器模式能很好地解決這些問題。

2、適配器模式的定義

適配器模式: 將一個類的接口轉換成客戶希望的另外一個接口,使得原本由于接口不兼容而不能一起工作的那些類能一起工作。

適配器模式分為類結構型模式和對象結構型模式兩種,前者類之間的耦合度比后者高,且要求程序員了解現有組件庫中的相關組件的內部結構,所以應用相對較少些。

3、適配器模式的優缺點

優點:

  • 客戶端通過適配器可以透明地調用目標接口

  • 復用了現存的類,程序員不需要修改原有代碼而重用現有的適配者類

  • 將目標類和適配者類解耦,解決了目標類和適配者類接口不一致的問題

  • 在很多業務場景中符合開閉原則

缺點:

  • 適配器編寫過程需要結合業務場景全面考慮,可能會增加系統的復雜性

  • 增加代碼閱讀難度,降低代碼可讀性,過多使用適配器會使系統代碼變得凌亂

4、適配器模式的結構與實現

(以下結構參考自互聯網)

模式的結構:

  • 目標(Target)接口: 當前系統業務所期待的接口,它可以是抽象類或接口

  • 適配者(Adaptee)類: 它是被訪問和適配的現存組件庫中的組件接口

  • 適配器(Adapter)類: 它是一個轉換器,通過繼承或引用適配者的對象,把適配者接口轉換成目標接口,讓客戶按目標接口的格式訪問適配者

類適配器模式的結構:

Java適配器模式怎么掌握

對象適配器模式的結構:

Java適配器模式怎么掌握

5、適配器模式的代碼實現

A、使用組合的方式實現適配器:

我們現在有一臺筆記本電腦的插頭的三相的,但是我們現在需要使用二相的插頭進行充電,所以我們需要給這個插頭裝上一個二相的適配器:

Java適配器模式怎么掌握

三相插座接口:

/**
 * 三相插座接口
 */
public interface ThreePlugIf {

    //使用三相電流供電
    public void powerWithThree();

}

國標的二相插座:

/**
 * 國標的二相插座
 */
public class GBTowPlug {
    public void powerWithTwo(){
        System.out.println("使用二相電流供電");
    }
}

筆記本:

/**
 * 筆記本
 */
public class NoteBook {

    private ThreePlugIf plug;

    public NoteBook(ThreePlugIf plug){
        this.plug = plug;
    }

    //使用插座充電
    public void charge(){
        plug.powerWithThree();
    }
}

三相轉二相的插座適配器:

/**
 * 三相轉二相的插座適配器
 */

public class TwoPlugAdapter implements ThreePlugIf {


    private GBTowPlug plug;

    public TwoPlugAdapter(GBTowPlug plug) {
        this.plug = plug;
    }

    @Override
    public void powerWithThree() {
        System.out.println("通過轉換");
        plug.powerWithTwo();
    }
}

測試類:

public class Test {

    public static void main(String[] args) {

    GBTowPlug two = new GBTowPlug();
    ThreePlugIf three = new TwoPlugAdapter(two);
    NoteBook nb = new NoteBook(three);
    nb.charge();
	}
}

輸出結果:

通過轉換
使用二相電流供電

采用組合方式的適配器稱為對象適配器

特點:

把“被適配者”作為一個對象組合到適配器類中,以修改目標接口包裝給適配者

B、使用繼承的方式實現適配器:

Java適配器模式怎么掌握

繼承適配器:

/**
 * 采用繼承方式的插座適配器
 */
public class TwoPlugAdapterExtends extends GBTowPlug implements ThreePlugIf{
    @Override
    public void powerWithThree() {
        System.out.println("借助繼承適配器");
        this.powerWithTwo();
    }
}

測試類:

public class Test {

    public static void main(String[] args) {

    GBTowPlug two = new GBTowPlug();
    ThreePlugIf three = new TwoPlugAdapter(two);
    NoteBook nb = new NoteBook(three);
    nb.charge();

    //使用繼承方法
    three = new TwoPlugAdapterExtends();
    nb = new NoteBook(three);
    nb.charge();
}
}

輸出:

通過轉換
使用二相電流供電

借助繼承適配器
使用二相電流供電

采用繼承方式的稱為類適配器

特點:

通過多重繼承不兼容接口,實現對目標接口的匹配,單一的為某個類而實現適配

6、適配器模式的應用場景

  • 之前開發的系統存在滿足新系統功能需求的類,但其接口同新系統的接口不一致

  • 使用第三方提供的組件,但組件接口定義和自己要求的接口定義不同

以上就是“Java適配器模式怎么掌握”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鹤壁市| 安图县| 吉首市| 达拉特旗| 淮安市| 克拉玛依市| 孝感市| 正蓝旗| 诸城市| 景东| 乌拉特前旗| 贵德县| 泽普县| 康马县| 腾冲县| 瑞丽市| 上栗县| 库伦旗| 扶风县| 九寨沟县| 福建省| 苍山县| 秦皇岛市| 托克逊县| 连云港市| 邯郸县| 广安市| 乐业县| 偏关县| 万载县| 衡阳县| 四平市| 大埔县| 枝江市| 惠来县| 吉隆县| 万盛区| 茂名市| 尚志市| 林口县| 黄浦区|