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

Java設計模式之適配器模式簡介

 更新時間:2014年07月29日 15:17:44   投稿:shichen2014  
這篇文章主要介紹了Java設計模式之適配器模式,需要的朋友可以參考下

本文舉例說明兩種適配器模式,即類適配模式和對象適配模式,詳情如下:

1.類適配模式:

舉個例子來說明:在地球時代,所有坐騎都是只能跑,不能飛的,而現在很多坐騎在地球都可以飛了。假設,地球時代的坐騎只能跑,而現在的坐騎不僅能飛還能跑,我們可以用類適配模式來實現。
這里需要注意的是,適配器繼承源類,實現目標接口。
示例代碼如下:

package adapter;

/**
 * DOC 源
 * 
 */
public class Sources {

  public void run() {
    System.out.println("run");
  }

}

package adapter;

/**
 * DOC 目標接口
 * 
 */
public interface ITarget {

  public void run();

  public void fly();
}

package adapter;

/**
 * DOC 繼承源類,實現目標接口,從而實現類到接口的適配
 * 
 */
public class Adapter extends Sources implements ITarget {

  @Override
  public void fly() {
    System.out.println("fly");
  }

}

2.對象適配模式:

假設一個適配器要適配多個對象,可以將這些對象引入到適配器里,然后通過調用這些對象的方法即可。

實現代碼如下::

package adapter;

/**
 * 
 * DOC 源對象,只有跑的功能
 * 
 */
public class Animal {

  public void run() {
    System.out.println("run");
  }
}

package adapter;

/**
 * DOC 目標接口,既能跑,又能飛
 * 
 */
public interface ITarget {

  public void run();

  public void fly();
}

package adapter;

/**
 * DOC 通過構造函數引入了源對象,并實現了目標的方法
 * 
 */
public class Adapter implements ITarget {

  private Animal animal;

  // private animal animal2....可以適配多個對象

  public Adapter(Animal animal) {
    this.animal = animal;
  }

  /**
   * DOC 拓展接口要求的新方法
   */
  public void fly() {
    System.out.println("fly");
  }

  /**
   * DOC 使用源對象的方法
   */
  public void run() {
    this.animal.run();
  }

}

相關文章

  • JavaWeb Refresh響應頭代碼實例詳解

    JavaWeb Refresh響應頭代碼實例詳解

    這篇文章主要介紹了JavaWeb Refresh響應頭代碼實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • mybatis-plus常用注解@TableId和@TableField的用法

    mybatis-plus常用注解@TableId和@TableField的用法

    本文主要介紹了mybatis-plus常用注解@TableId和@TableField的用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • IntelliJ IDEA 下載安裝超詳細教程(推薦)

    IntelliJ IDEA 下載安裝超詳細教程(推薦)

    這篇文章主要介紹了IntelliJ IDEA 下載安裝超詳細教程(推薦),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Springboot搭建JVM監(jiān)控(Springboot + Prometheus + Grafana)

    Springboot搭建JVM監(jiān)控(Springboot + Prometheus +&n

    在應用開發(fā)時,監(jiān)控報警必不可少,本文主要介紹了Springboot搭建JVM監(jiān)控(Springboot + Prometheus + Grafana),具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • 淺析關于java的序列化和反序列化

    淺析關于java的序列化和反序列化

    這篇文章主要介紹了淺析關于java的序列化和反序列化,所謂序列化,就是把要傳輸的對象以及相關信息轉換成字節(jié)數組進行存儲的過程,而反序列化就是將字節(jié)數組再轉回對象的過程,需要的朋友可以參考下
    2023-07-07
  • 淺談Java中類的實例化步驟

    淺談Java中類的實例化步驟

    今天小編就為大家分享一篇關于淺談Java中類的實例化步驟,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • MyBatis利用攔截器實現數據脫敏詳解

    MyBatis利用攔截器實現數據脫敏詳解

    現代網絡環(huán)境中,敏感數據的處理是至關重要的,敏感數據包括個人身份信息、銀行賬號、手機號碼等,所以本文主要為大家詳細介紹了MyBatis如何利用攔截器實現數據脫敏,希望對大家有所幫助
    2023-11-11
  • Java使用Knife4j優(yōu)化Swagger接口文檔的操作步驟

    Java使用Knife4j優(yōu)化Swagger接口文檔的操作步驟

    在現代微服務開發(fā)中,接口文檔的質量直接影響了前后端協(xié)作效率,Swagger 作為一個主流的接口文檔工具,雖然功能強大,但其默認界面和部分功能在實際使用中略顯不足,而 Knife4j 的出現為我們提供了一種增強的選擇,本篇文章將詳細介紹如何在項目中集成和使用 Knife4j
    2024-12-12
  • java list常用方法總結

    java list常用方法總結

    這篇文章主要介紹了java list常用方法總結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • Java8新特性Optional類處理空值判斷回避空指針異常應用

    Java8新特性Optional類處理空值判斷回避空指針異常應用

    這篇文章主要介紹了Java8新特性Optional類處理空值判斷回避空指針異常應用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04

最新評論

台前县| 福泉市| 军事| 宿迁市| 长岭县| 奎屯市| 灵山县| 赤城县| 玛多县| 霞浦县| 吉木萨尔县| 肥东县| 呼图壁县| 周宁县| 敦煌市| 汪清县| 新营市| 光泽县| 武定县| 天台县| 那坡县| 当雄县| 体育| 固阳县| 兰西县| 天门市| 葵青区| 奇台县| 景洪市| 循化| 五常市| 友谊县| 临颍县| 鱼台县| 南宁市| 大足县| 罗江县| 灵宝市| 怀安县| 合作市| 周口市|