最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

前言:

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

       在計算機編程中,適配器模式(有時候也稱包裝樣式或者包裝)將一個類的接口適配成用戶所期待的。
一個適配允許通常因為接口不兼容而不能在一起工作的類工作在一起,做法是將類自己的接口包裹在一個已存在的類中。

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)接一下的,這就是適配器模式。

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

適用場景:

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

優(yōu)缺點:

優(yōu)點:

更好的復用性和擴展性

缺點:

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

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

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

相關(guān)文章

  • Java初學之繼承與多態(tài)

    Java初學之繼承與多態(tài)

    這篇文章主要介紹了Java 繼承與多態(tài)的深入理解的相關(guān)資料,子類繼承父類的特征和行為,使得子類具有父類的各種屬性和方法?;蜃宇悘母割惱^承方法,使得子類具有父類相同的行為,需要的朋友可以參考下
    2021-07-07
  • Java編程實現(xiàn)逆波蘭表達式代碼示例

    Java編程實現(xiàn)逆波蘭表達式代碼示例

    本文主要對Java算法逆波蘭表達式的相關(guān)內(nèi)容作了介紹,涉及逆波蘭表達式的定義已經(jīng)在Java中的實現(xiàn),具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • @ControllerAdvice 用法解析

    @ControllerAdvice 用法解析

    @ControllerAdvice就是@Controller 的增強版,@ControllerAdvice主要用來處理全局數(shù)據(jù),一般搭配@ExceptionHandler、@ModelAttribute以及@InitBinder使用,這篇文章主要介紹了@ControllerAdvice 用法,需要的朋友可以參考下
    2022-11-11
  • Spring Boot學習入門之AOP處理請求詳解

    Spring Boot學習入門之AOP處理請求詳解

    AOP為Aspect Oriented Programming的縮寫,意為:面向切面編程,通過預編譯方式和運行期動態(tài)代理實現(xiàn)程序功能的統(tǒng)一維護的一種技術(shù),下面這篇文章主要給大家介紹了關(guān)于Spring Boot學習入門之AOP處理請求的相關(guān)資料,需要的朋友可以參考下。
    2017-09-09
  • JDBC中Fetchsize的實現(xiàn)

    JDBC中Fetchsize的實現(xiàn)

    fetchsize是指在執(zhí)行數(shù)據(jù)庫查詢時,每次從數(shù)據(jù)庫中獲取的記錄條數(shù),它對內(nèi)存使用和網(wǎng)絡(luò)傳輸效率有重要影響,在MyBatis中,可以通過全局設(shè)置或語句級別設(shè)置fetchsize,來控制查詢操作的內(nèi)存使用和提升性能,合理的fetchsize設(shè)置能有效減少網(wǎng)絡(luò)往返次數(shù)和防止內(nèi)存溢出
    2024-09-09
  • 經(jīng)典的Java面試題及回答集錦(基礎(chǔ)篇)

    經(jīng)典的Java面試題及回答集錦(基礎(chǔ)篇)

    本文給大家收藏整理了java面試題及回答,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2018-03-03
  • 詳解JAVA類加載機制

    詳解JAVA類加載機制

    這篇文章主要介紹了JAVA類加載機制的相關(guān)知識,文中代碼非常詳細,供大家參考和學習,感興趣的朋友可以了解下
    2020-06-06
  • 快速解決commons-fileupload組件無法處理自定義head信息的bug

    快速解決commons-fileupload組件無法處理自定義head信息的bug

    問題在于fileupload組件解析完自定義的head節(jié)點后,卻忘記傳遞到FileItemStreamImpl中了,稍作修訂,即可修正該bug
    2013-08-08
  • SpringBoot中swagger的使用

    SpringBoot中swagger的使用

    這篇文章主要介紹了SpringBoot中swagger的使用,文中有非常詳細的代碼示例,對正在學習swagger的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • Dubbo框架線程池使用介紹

    Dubbo框架線程池使用介紹

    當我們在使用dubbo的時候,是可以通過調(diào)整線程池來達到調(diào)優(yōu)的效果,我們可以在dubbo:protocol 標簽中使用用threadpool屬性選擇自己想要使用的線程池,通過threads屬性配置服務(wù)線程數(shù),queues屬性配置使用的隊列
    2022-09-09

最新評論

石景山区| 新余市| 罗源县| 邹城市| 定西市| 晋城| 荃湾区| 舟曲县| 会泽县| 福泉市| 珠海市| 惠安县| 镇安县| 阿拉善右旗| 山东省| 喀喇沁旗| 屏东市| 华宁县| 英吉沙县| 罗江县| 嘉荫县| 云南省| 鄂温| 朝阳县| 纳雍县| 探索| 鲁甸县| 铁力市| 抚远县| 莲花县| 永川市| 固原市| 临泉县| 邵阳市| 农安县| 石阡县| 盘锦市| 汝州市| 内丘县| 扶余县| 靖江市|