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

Java適配器模式定義與用法示例

 更新時間:2017年06月07日 08:27:35   作者:qq7342272  
這篇文章主要介紹了Java適配器模式定義與用法,結(jié)合具體實例形式分析了java適配器模式的功能、組成、定義、使用方法及適配程度等,需要的朋友可以參考下

本文實例講述了Java適配器模式定義與用法。分享給大家供大家參考,具體如下:

將一個類的接口轉(zhuǎn)換成客戶想要的另一個接口,適配器模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作

適配器一共包括3種角色

1、目標:目標是一個接口,該接口是客戶想使用的接口

2、被適配者:被適配者是一個已存在的接口或抽象類,這個接口或抽象類需要適配

3、適配器:適配器是一個類,該類實現(xiàn)了目標接口并包含有被適配者的引用,即適配者的指著是對被適配者接口與目標進行適配

package org.zhy.adapter;
/**
 * 目標
 * @author zhengyi
 *
 */
public interface ThreeElectricOutlet {
  //用來刻畫三相插座
  public abstract void connectElectricCurrent();
}

package org.zhy.adapter;
/**
 * 適配器
 * @author zhengyi
 *
 */
public class TreeElecricAdapter implements ThreeElectricOutlet {
  TwoElectricOutlet outlet;
  public TreeElecricAdapter(TwoElectricOutlet teo) {
    this.outlet=teo;
  }
  @Override
  public void connectElectricCurrent() {
    outlet.connectElectricCurrent();
  }
}

package org.zhy.adapter;
/**
 * 被適配者
 * @author zhengyi
 *
 */
public interface TwoElectricOutlet {
  //刻畫兩相插座
  public abstract void connectElectricCurrent();
}

package org.zhy.adapter;
public class Appliction {
  public static void main(String[] args) {
    ThreeElectricOutlet outlet; //目標接口三相插座
    Wash wash=new Wash();
    outlet=wash;
    System.out.println("使用三相插座接通電流");
    outlet.connectElectricCurrent();
    Tv tv=new Tv();
    TreeElecricAdapter adapter=new TreeElecricAdapter(tv);
    outlet= adapter;
    System.out.println("使用三相插座接通電流");
    outlet.connectElectricCurrent();
  }
}

package org.zhy.adapter;
/**
 * 洗衣機
 * @author zhengyi
 *
 */
public class Wash implements ThreeElectricOutlet {
  private String name;
  public Wash() {
    name="洗衣機";
  }
  public Wash(String name){
    this.name=name;
  }
  @Override
  public void connectElectricCurrent() {
    turnOn();
  }
  private void turnOn(){
    System.out.println(name+"開始洗衣服");
  }
}

package org.zhy.adapter;
/**
 * 電視
 * @author zhengyi
 *
 */
public class Tv implements TwoElectricOutlet {
  private String name;
  public Tv() {
    name="長江電視機";
  }
  public Tv(String s){
    this.name=s;
  }
  @Override
  public void connectElectricCurrent() {
    turnOn();
  }
  private void turnOn(){
    System.out.println(name+"開始播放節(jié)目");
  }
}

適配器的適配程度

1、完全適配

如果目標接口中的方法數(shù)目與被適配者接口的方法數(shù)目相等那么適配器可將被適配者接口與目標接口進行完全適配

2、不完全適配

如果目標接口中的方法數(shù)目少于被適配者接口的方法數(shù)目那么適配器只能將被適配者接口與目標接口進行適配

3、剩余適配

如果目標接口中的方法數(shù)目大于被適配者接口的方法數(shù)目。那么適配器可將被適配者接口與目標接口進行完全適配,但必須將目標多余的方法給出用戶允許默認實現(xiàn)

適配器模式的優(yōu)點

1、目標和適配者是完全解耦的關(guān)系

2、適配器模式滿足“開-閉原則”當添加一個實現(xiàn)Adaptee接口的新類時,不必修改Adaptee,而Adaptee就能對這個新類的實例進行適配

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設計有所幫助。

相關(guān)文章

  • Springboot+Bootstrap實現(xiàn)增刪改查實戰(zhàn)

    Springboot+Bootstrap實現(xiàn)增刪改查實戰(zhàn)

    這篇文章主要介紹了Springboot+Bootstrap實現(xiàn)增刪改查實戰(zhàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • java導出大批量(百萬以上)數(shù)據(jù)的excel文件

    java導出大批量(百萬以上)數(shù)據(jù)的excel文件

    這篇文章主要為大家詳細 介紹了java導出大批量即百萬以上數(shù)據(jù)的excel文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • mybatis自動填充時間字段示例代碼

    mybatis自動填充時間字段示例代碼

    這篇文章主要給大家介紹了關(guān)于mybatis自動填充時間字段的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01
  • Java?ArrayList集合之解鎖數(shù)據(jù)存儲新姿勢

    Java?ArrayList集合之解鎖數(shù)據(jù)存儲新姿勢

    這篇文章主要介紹了Java?ArrayList集合之解鎖數(shù)據(jù)存儲新姿勢,ArrayList是一個動態(tài)數(shù)組,可以自動調(diào)整大小,并提供了豐富的操作方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-03-03
  • java spring整合junit操作(有詳細的分析過程)

    java spring整合junit操作(有詳細的分析過程)

    這篇文章主要介紹了java spring整合junit操作(有詳細的分析過程),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • java實現(xiàn)桌面右下角彈窗效果

    java實現(xiàn)桌面右下角彈窗效果

    這篇文章主要為大家詳細介紹了java實現(xiàn)桌面右下角彈窗效果,模仿類似于qq消息彈窗,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • java實現(xiàn)簡單汽車租賃系統(tǒng)

    java實現(xiàn)簡單汽車租賃系統(tǒng)

    這篇文章主要為大家詳細介紹了java實現(xiàn)簡單汽車租賃系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • Spring?boot?Jpa添加對象字段使用數(shù)據(jù)庫默認值操作

    Spring?boot?Jpa添加對象字段使用數(shù)據(jù)庫默認值操作

    這篇文章主要介紹了Spring?boot?Jpa添加對象字段使用數(shù)據(jù)庫默認值操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • grade構(gòu)建閱讀spring源碼環(huán)境 Idea2020.3的過程

    grade構(gòu)建閱讀spring源碼環(huán)境 Idea2020.3的過程

    這篇文章主要介紹了grade構(gòu)建閱讀spring源碼環(huán)境 Idea2020.3,本文分步驟通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • gradle使用maven-publish發(fā)布jar包上傳到私有maven配置

    gradle使用maven-publish發(fā)布jar包上傳到私有maven配置

    這篇文章主要介紹了gradle使用maven-publish發(fā)布jar包上傳到私有maven的配置示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03

最新評論

全椒县| 遵义市| 富宁县| 视频| 怀来县| 宣汉县| 通海县| 安塞县| 白城市| 集安市| 通化市| 宣武区| 抚松县| 乌鲁木齐市| 白山市| 北辰区| 昭通市| 铅山县| 大悟县| 阿城市| 泰顺县| 神木县| 永城市| 通山县| 许昌市| 桓台县| 玉田县| 平邑县| 四平市| 青神县| 香河县| 手机| 砚山县| 汉寿县| 临颍县| 东海县| 都江堰市| 田阳县| 凯里市| 呼伦贝尔市| 新沂市|