欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java 設(shè)計(jì)模式之適配器模式的詳解

 更新時(shí)間:2017年07月15日 10:45:03   投稿:lqh  
這篇文章主要介紹了java 設(shè)計(jì)模式之適配器模式的詳解的相關(guān)資料,需要的朋友可以參考下

java 設(shè)計(jì)模式之適配器模式的詳解

前言:

      適配器模式(Adapter Pattern)又叫做變壓器模式,也叫做包裝模式。包裝模式還包括裝飾模式。

       在計(jì)算機(jī)編程中,適配器模式(有時(shí)候也稱包裝樣式或者包裝)將一個(gè)類的接口適配成用戶所期待的。
一個(gè)適配允許通常因?yàn)榻涌诓患嫒荻荒茉谝黄鸸ぷ鞯念惞ぷ髟谝黄?,做法是將類自己的接口包裹在一個(gè)已存在的類中。

UML類圖:

 具體代碼:

public class Client {
  public static void main(String[] args) {
    Adaptee adaptee = new Adaptee();
    Adapter adapter = new Adapter(adaptee);
    adapter.request();
  }
}

public interface Target {
  void request();
}

public class Adaptee {
  void adapteeRequest() {
    System.out.println("本類");
  }
}

public class Adapter implements Target {

  Adapter(Adaptee adaptee) {
    this.adaptee = adaptee;
  }
  private Adaptee adaptee;
  @Override
  public void request() {
    System.out.println("適配類");
    adaptee.adapteeRequest();
  }
}

舉例說明:

       此模式日常的例子,最常見的就是各種各樣的轉(zhuǎn)接口,Mac本連投影儀,一般都是需要轉(zhuǎn)接口轉(zhuǎn)接一下的,這就是適配器模式。

在實(shí)際開發(fā)的例子中,現(xiàn)在系統(tǒng)都是迭代開發(fā)的,一步步累計(jì),出現(xiàn)的情況就是,同樣的功能可能有兩個(gè)或多個(gè)不同的接口,
有的需要調(diào)用之前的,有的調(diào)用后來的,都亂掉了,那就需要加一層適配器,把兩個(gè)新舊的兼容起來。

適用場(chǎng)景:

       你想使用一個(gè)已經(jīng)存在的類,而它的接口不符合你的需求。
       你想創(chuàng)建一個(gè)可以復(fù)用的類,該類可以與其他不相關(guān)的類或不可預(yù)見的類(即那些接口可能不一定兼容的類)協(xié)同工作。
       你想使用一些已經(jīng)存在的子類,但是不可能對(duì)每一個(gè)都進(jìn)行子類化以匹配它們的接口。對(duì)象適配器可以適配它的父類接口

優(yōu)缺點(diǎn):

優(yōu)點(diǎn):

更好的復(fù)用性和擴(kuò)展性

缺點(diǎn):

很多的適配器結(jié)合起來,會(huì)使系統(tǒng)過于過亂,不容易把握。

總結(jié):適配器模式相對(duì)簡(jiǎn)單,總結(jié)起來就是兩個(gè)字“兼容”,這就是這種模式的精髓,當(dāng)然系統(tǒng)不需要兼容更好。

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Java如何分析算法的時(shí)間和空間復(fù)雜度

    Java如何分析算法的時(shí)間和空間復(fù)雜度

    這篇文章主要介紹了Java如何分析算法的時(shí)間和空間復(fù)雜度,在計(jì)算機(jī)科學(xué)中,計(jì)算復(fù)雜性解釋了算法的性能。文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-06-06
  • Java中常用的設(shè)計(jì)模式之單例模式詳解

    Java中常用的設(shè)計(jì)模式之單例模式詳解

    這篇文章主要為大家詳細(xì)介紹了Java中常用的設(shè)計(jì)模式之單例模式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • 基于Spring Mvc實(shí)現(xiàn)的Excel文件上傳下載示例

    基于Spring Mvc實(shí)現(xiàn)的Excel文件上傳下載示例

    本篇文章主要介紹了基于Spring Mvc實(shí)現(xiàn)的Excel文件上傳下載示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • 淺談java隨機(jī)數(shù)的陷阱

    淺談java隨機(jī)數(shù)的陷阱

    這篇文章主要介紹了淺談java隨機(jī)數(shù)的陷阱,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Java中實(shí)現(xiàn)代碼優(yōu)化的技巧分享

    Java中實(shí)現(xiàn)代碼優(yōu)化的技巧分享

    這篇文章主要跟大家談?wù)剝?yōu)化這個(gè)話題,那么我們一起聊聊Java中如何實(shí)現(xiàn)代碼優(yōu)化這個(gè)問題,小編這里有幾個(gè)實(shí)用的小技巧分享給大家,需要的可以參考一下
    2022-08-08
  • 詳解Java8新特性如何防止空指針異常

    詳解Java8新特性如何防止空指針異常

    要說 Java 編程中哪個(gè)異常是你印象最深刻的,那 NullPointerException 空指針可以說是臭名昭著的,不要說初級(jí)程序員會(huì)碰到, 即使是中級(jí),專家級(jí)程序員稍不留神,就會(huì)掉入這個(gè)坑里,本文就和大家聊聊Java8新特性如何防止空指針異常
    2023-08-08
  • Jax-rs規(guī)范REST接口文件上傳代碼實(shí)例

    Jax-rs規(guī)范REST接口文件上傳代碼實(shí)例

    這篇文章主要介紹了Jax-rs規(guī)范REST接口文件上傳代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • java設(shè)計(jì)模式--七大原則詳解

    java設(shè)計(jì)模式--七大原則詳解

    本篇文章主要對(duì)Java中的設(shè)計(jì)模式如,創(chuàng)建型模式、結(jié)構(gòu)型模式和行為型模式以及7大原則進(jìn)行了歸納整理,需要的朋友可以參考下,希望能給你帶來幫助
    2021-07-07
  • 使用Java把文本內(nèi)容轉(zhuǎn)換成網(wǎng)頁的實(shí)現(xiàn)方法分享

    使用Java把文本內(nèi)容轉(zhuǎn)換成網(wǎng)頁的實(shí)現(xiàn)方法分享

    這篇文章主要介紹了使用Java把文本內(nèi)容轉(zhuǎn)換成網(wǎng)頁的實(shí)現(xiàn)方法分享,利用到了Java中的文件io包,需要的朋友可以參考下
    2015-11-11
  • Java中常見的編碼集問題總結(jié)

    Java中常見的編碼集問題總結(jié)

    這篇文章主要為大家整理了一些Java中常見的編碼集問題,文中的示例代碼講解詳細(xì),對(duì)我們深入理解Java有一定的幫助,感興趣的小伙伴可以了解一下
    2023-02-02

最新評(píng)論