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

java設(shè)計模式之適配器模式(Adapter)

 更新時間:2017年01月03日 08:25:30   作者:yuminfeng728  
這篇文章主要介紹了java設(shè)計模式之適配器模式Adapter的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

概述

將一個類的接口轉(zhuǎn)換成用戶希望的另外一個接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以在一起工作。

兩種實(shí)現(xiàn)方式

1.類的適配器模式:
2.對象的適配器模式:

類的適配器模式的UML圖,如下:

類的適配器模式把適配的類的API轉(zhuǎn)換成為目標(biāo)類的API。

上圖設(shè)計的角色有:

目標(biāo)角色(Target):這就是所期待得到的接口。
源角色(Adapee):現(xiàn)在需要適配的接口。
適配器角色(Adapter):是本模式的核心,適配器把源接口轉(zhuǎn)換成目標(biāo)接口。

代碼示例:

interface Target{
  void method1();
  void method2(); //期待得到該方法
}
//源類中不具備method2中的方法。
class Adaptee{
  public void method1(){
    System.out.println("method1");
  }
}

class Adapter extends Adaptee implements Target{

  @Override
  public void method2() {
    System.out.println("this is target method");
  }

}

public class MainTest {

  public static void main(String arg[]) {
    Target target = new Adapter();
    target.method2();
  }
}

對象的適配器模式的UMl圖,如下:

核心思路與類的適配器模式相同,只是將Adapter類修改,不繼承Adaptee類,而是持有Adaptee類的引用。代碼如下:

interface Target{
  void method1();
  void method2();
}

class Adaptee{
  public void method1(){
    System.out.println("method1");
  }
}

class Adapter implements Target{

  private Adaptee adaptee;

  public Adapter(Adaptee adaptee){
    this.adaptee = adaptee;
  }

  @Override
  public void method2() {
    System.out.println("this is target method");
  }

  @Override
  public void method1() {
    // TODO Auto-generated method stub
    adaptee.method1();
  }

}

public class MainTest {

  public static void main(String arg[]) {
    Target target = new Adapter(new Adaptee());
    target.method2();
  }
}

適配器模式的優(yōu)缺點(diǎn):
更好的復(fù)用性,更好的擴(kuò)展性。系統(tǒng)需要使用現(xiàn)有的類,而此類的接口不符合系統(tǒng)的需要,那么通過適配器模式就可以讓這些功能得到更好的復(fù)用。在實(shí)現(xiàn)適配器功能的時候,可以調(diào)用自己開發(fā)的功能,從而自然地擴(kuò)展系統(tǒng)的功能。
缺點(diǎn):過多的使用適配器,會讓系統(tǒng)非常凌亂,不易整體把握。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • MyBatis中正則使用foreach拼接字符串

    MyBatis中正則使用foreach拼接字符串

    這篇文章主要介紹了MyBatis中正則使用foreach拼接字符串,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Spring自動注入失敗的解決方法

    Spring自動注入失敗的解決方法

    這篇文章主要介紹了Spring自動注入失敗的解決方法,幫助大家更好的理解和學(xué)習(xí)使用Spring框架,感興趣的朋友可以了解下
    2021-05-05
  • SpringBoot集成Swagger2實(shí)現(xiàn)Restful(類型轉(zhuǎn)換錯誤解決辦法)

    SpringBoot集成Swagger2實(shí)現(xiàn)Restful(類型轉(zhuǎn)換錯誤解決辦法)

    這篇文章主要介紹了SpringBoot集成Swagger2實(shí)現(xiàn)Restful(類型轉(zhuǎn)換錯誤解決辦法),需要的朋友可以參考下
    2017-07-07
  • jdbc連SQL?server顯示1433端口連接失敗圖文解決方法

    jdbc連SQL?server顯示1433端口連接失敗圖文解決方法

    這篇文章主要給大家介紹了關(guān)于jdbc連SQL?server顯示1433端口連接失敗的圖文解決方法,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-06-06
  • Java調(diào)用Windows的DOS命令的方法

    Java調(diào)用Windows的DOS命令的方法

    這篇文章主要介紹了Java調(diào)用Windows的DOS命令的方法,其主要內(nèi)容思路是實(shí)現(xiàn)調(diào)用Windows的ipconfig命令,然后將輸出的信息通過IO流輸出到控制臺。有需要的小伙伴參考下
    2015-02-02
  • SpringBoot 進(jìn)行限流的操作方法

    SpringBoot 進(jìn)行限流的操作方法

    限流是對某一時間窗口內(nèi)的請求數(shù)進(jìn)行限制,保持系統(tǒng)的可用性和穩(wěn)定性,防止因流量暴增而導(dǎo)致的系統(tǒng)運(yùn)行緩慢或宕機(jī)。本文重點(diǎn)給大家介紹SpringBoot 進(jìn)行限流的操作方法,感興趣的朋友一起看看吧
    2021-10-10
  • Java中使用注解獲取和改變Bean的指定變量值

    Java中使用注解獲取和改變Bean的指定變量值

    Java有時需要通過自定義注解,獲取某Bean的某變量的值,根據(jù)業(yè)務(wù)要求處理數(shù)據(jù),然后再把新值設(shè)置回Bean的同一變量中,這篇文章介紹了使用注解獲取和改變Bean變量值的過程,感興趣想要詳細(xì)了解可以參考下文
    2023-05-05
  • 在Intellij Idea中使用jstl標(biāo)簽庫的方法

    在Intellij Idea中使用jstl標(biāo)簽庫的方法

    這篇文章主要介紹了在Intellij Idea中使用jstl標(biāo)簽庫的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • java導(dǎo)出json格式文件的示例代碼

    java導(dǎo)出json格式文件的示例代碼

    本篇文章主要介紹了java導(dǎo)出json格式文件的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • java json不生成null或者空字符串屬性(詳解)

    java json不生成null或者空字符串屬性(詳解)

    下面小編就為大家?guī)硪黄猨ava json不生成null或者空字符串屬性(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02

最新評論

甘孜| 桦甸市| 西华县| 德惠市| 会理县| 和政县| 柳河县| 常州市| 方正县| 雷州市| 崇左市| 景宁| 利津县| 思茅市| 安顺市| 东莞市| 永福县| 富源县| 玛纳斯县| 东兴市| 宁阳县| 溧水县| 霍州市| 泽普县| 金川县| 德阳市| 建湖县| 盐山县| 兴安盟| 镇安县| 自贡市| 河池市| 滦平县| 思南县| 稷山县| 堆龙德庆县| 四川省| 阳泉市| 清水县| 北宁市| 类乌齐县|