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

詳解Java適配器模式

 更新時間:2019年03月21日 16:44:39   作者:鍵盤上的麒麟臂  
這篇文章主要介紹了Java適配器模式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

假期剛結(jié)束不久,也沒什么好寫的,今天就水下文章,講講設(shè)計模式對開發(fā)時的影響,做開發(fā)到現(xiàn)在,感覺設(shè)計模式對開發(fā)的影響還是挺大的。

這次就簡單談?wù)勥m配器模式??赡苓m配器模式感覺比較雞肋,但是用到的地方還挺多的,特別是合作開發(fā)的時候。

1.適配器模式

適配器模式,作為連接兩個接口的橋梁。這個概念感覺有點(diǎn)那啥,很少用接口的朋友可能就沒有什么感覺,經(jīng)常面向接口編程的朋友比較能產(chǎn)生共鳴,簡單來說,就是寫一個適配器(轉(zhuǎn)換器)來對接對象。

2.適配器模式使用

java適配器模式有兩種,類適配器和對象適配器

(1)類適配器demo

類適配器主要是使用繼承的方式連接兩個接口。我們假設(shè)對接接口A和接口B。

先寫接口B

public interface MP4{
 void play();
}

接口B的實(shí)現(xiàn)類

public class ExpensiveMP4 implement MP4{
 public void play(){
   // todo
 }
}

接口A

public interface Player{
  void action();
}

假如你的工程中有這幾個類,然后你發(fā)現(xiàn),action()方法中要寫的操作,就是ExpensiveMP4的play()中的操作“//todo”,所以你沒必要重復(fù)再寫一次,想個辦法讓他們適配。所以,你想讓外部調(diào)用Player的時候去調(diào)用ExpensiveMP4的play,如果用類適配器的話可以這樣寫

public class ExpensiveAdapter extends ExpensiveMP4 implement Player{
 public void action(){
  play();
 }
}

這樣就把兩個接口連接起來了,不過我一般用不上類適配器,感覺這樣的做法不太靈活,而且在java中,盡量少用繼承,多用組合。而且這種寫法我覺得也不太舒服。

(2)對象適配器demo

上面的類適配器用的是“繼承”的方式去連接,這里的對象適配器用的是“組合”的方式。我們假設(shè)對接接口A和接口B。就用上面的MP4接口,Player接口和ExpensiveMP4類吧。

這時候我們使用對象適配器的話可以這樣寫。

public class PlayerAdapter implement Player{
 public ExpensiveMP4 expensiveMP4;
 
 public PlayerAdapter (){
  this.expensiveMP4 = new ExpensiveMP4();
 }  

 public void action(){
  if(expensiveMP4 != null){
    expensiveMP4 .play();
  }
 }

}

感覺這樣好像不太靈活,expensiveMP4像死的一樣,毫無靈魂,好吧,我們改改。

public class PlayerAdapter implement Player{
 public ExpensiveMP4 expensiveMP4;
 
 public PlayerAdapter (ExpensiveMP4 expensiveMP4){
  this.expensiveMP4 = expensiveMP4;
 }  

 public void action(){
  if(expensiveMP4 != null){
    expensiveMP4 .play();
  }
 }

}

這樣就比剛才好多了,比剛才的代碼靈活多了,但是總感覺有點(diǎn)普通,我們要把代碼寫得有點(diǎn)藝術(shù),抽象就是藝術(shù),好吧,再改改。

public class PlayerAdapter implement Player{
 public MP4 mp4;
 
 public PlayerAdapter (MP4 mp4){
  this.mp4 = mp4;
 }  

 public void action(){
  if(mp4!= null){
    mp4.play();
  }
 }

}

可能這樣看起來會比較好一點(diǎn)吧,比較容易看出如何適配兩個接口。

3.適配器模式的使用場景

(1)其中一個使用的場景是像上面所說的一樣,有兩個接口,你主動的想去連接著兩個接口,寫個適配器,感覺這種情況也不是很多,因?yàn)楹芏鄷r候都是些一個實(shí)體類對象調(diào)用另一個實(shí)體類對象。

(2)被動使用的情況,這種情況我可能見得比較多。舉個栗子,比較極端的栗子,你和你同伴一起合作開發(fā),你同伴寫一個部分,你寫一個部分,現(xiàn)在兩個部分要對接。結(jié)過到對接時,你們發(fā)現(xiàn)兩個人都自定義了接口,而且兩個人都開發(fā)完了,都不想改,那怎么辦,只能寫一個適配器去適配兩個接口。又或者說你開發(fā)新版本的時候重新定義了接口,要和舊版本寫適配的時候,為了方便也可以使用適配器模式。

以上所述是小編給大家介紹的Java適配器模式詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 淺談Spring Boot 整合ActiveMQ的過程

    淺談Spring Boot 整合ActiveMQ的過程

    本篇文章主要介紹了淺談Spring Boot 整合ActiveMQ的過程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • JavaFX實(shí)現(xiàn)UI美觀效果代碼實(shí)例

    JavaFX實(shí)現(xiàn)UI美觀效果代碼實(shí)例

    這篇文章主要介紹了JavaFX實(shí)現(xiàn)UI美觀效果代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • java基礎(chǔ)檢查和未檢查異常處理詳解

    java基礎(chǔ)檢查和未檢查異常處理詳解

    這篇文章介紹了java基礎(chǔ)中異常的處理,主要講解了java檢查和未檢查異常處理的示例詳解有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • Java中volatile關(guān)鍵字的作用

    Java中volatile關(guān)鍵字的作用

    這篇文章主要介紹了Java中volatile關(guān)鍵字的作用,文章基于Java的相關(guān)資料展開對volatile關(guān)鍵字作用的詳細(xì)介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-04-04
  • 深入理解Java中HashCode方法

    深入理解Java中HashCode方法

    這篇文章主要介紹了深入理解Java中HashCode方法,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Java并發(fā)工具輔助類代碼實(shí)例

    Java并發(fā)工具輔助類代碼實(shí)例

    這篇文章主要介紹了Java并發(fā)工具輔助類代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • java實(shí)現(xiàn)插入排序算法

    java實(shí)現(xiàn)插入排序算法

    插入排序算法是一個對少量元素進(jìn)行排序的有效算法。插入排序的工作原理與打牌時整理手中的牌的做法類似,開始摸牌時,我們的左手是空的,接著一次從桌上摸起一張牌,并將它插入到左手的正確位置。
    2015-04-04
  • SpringBoot中實(shí)現(xiàn)分布式的Session共享的詳細(xì)教程

    SpringBoot中實(shí)現(xiàn)分布式的Session共享的詳細(xì)教程

    這篇文章主要介紹了SpringBoot中實(shí)現(xiàn)分布式的Session共享,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Java基礎(chǔ)教程之類數(shù)據(jù)與類方法

    Java基礎(chǔ)教程之類數(shù)據(jù)與類方法

    這篇文章主要介紹了Java基礎(chǔ)教程之類數(shù)據(jù)與類方法,本文是對類的深入探討,類數(shù)據(jù)指類的一些屬性、參數(shù)等,類方法就是類包含的功能方法,需要的朋友可以參考下
    2014-08-08
  • Java畢業(yè)設(shè)計實(shí)戰(zhàn)之健身俱樂部管理系統(tǒng)的實(shí)現(xiàn)

    Java畢業(yè)設(shè)計實(shí)戰(zhàn)之健身俱樂部管理系統(tǒng)的實(shí)現(xiàn)

    這是一個使用了java+SSM+Mysql+Jsp開發(fā)的健身俱樂部管理系統(tǒng),是一個畢業(yè)設(shè)計的實(shí)戰(zhàn)練習(xí),具有俱樂部管理該有的所有功能,感興趣的朋友快來看看吧
    2022-02-02

最新評論