激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 詳解Java適配器模式

詳解Java適配器模式

2021-07-24 15:09鍵盤上的麒麟臂 Java教程

這篇文章主要介紹了Java適配器模式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

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

這次就簡單談談適配器模式。可能適配器模式感覺比較雞肋,但是用到的地方還挺多的,特別是合作開發的時候。

1.適配器模式

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

2.適配器模式使用

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

(1)類適配器demo

類適配器主要是使用繼承的方式連接兩個接口。我們假設對接接口a和接口b。

先寫接口b

?
1
2
3
public interface mp4{
 void play();
}

接口b的實現類

?
1
2
3
4
5
public class expensivemp4 implement mp4{
 public void play(){
   // todo
 }
}

接口a

?
1
2
3
public interface player{
  void action();
}

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

?
1
2
3
4
5
public class expensiveadapter extends expensivemp4 implement player{
 public void action(){
  play();
 }
}

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

(2)對象適配器demo

上面的類適配器用的是“繼承”的方式去連接,這里的對象適配器用的是“組合”的方式。我們假設對接接口a和接口b。就用上面的mp4接口,player接口和expensivemp4類吧。

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class playeradapter implement player{
 public expensivemp4 expensivemp4;
 
 public playeradapter (){
  this.expensivemp4 = new expensivemp4();
 
 
 public void action(){
  if(expensivemp4 != null){
    expensivemp4 .play();
  }
 }
 
}

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class playeradapter implement player{
 public expensivemp4 expensivemp4;
 
 public playeradapter (expensivemp4 expensivemp4){
  this.expensivemp4 = expensivemp4;
 
 
 public void action(){
  if(expensivemp4 != null){
    expensivemp4 .play();
  }
 }
 
}

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class playeradapter implement player{
 public mp4 mp4;
 
 public playeradapter (mp4 mp4){
  this.mp4 = mp4;
 
 
 public void action(){
  if(mp4!= null){
    mp4.play();
  }
 }
 
}

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

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

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

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

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

原文鏈接:https://www.jianshu.com/p/b3a00cca10de

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 舌头伸进添的我好爽高潮网站 | 久久亚洲美女视频 | 久久精品一级片 | 国产精品视频自拍 | 国产91九色在线播放 | 中国毛片在线观看 | 狼网 | 一级免费a | 泰剧19禁啪啪无遮挡大尺度 | 91视频完整版 | 国产精品免费小视频 | 国产一级毛片av | 又黄又爽免费无遮挡在线观看 | 一级全毛片 | 成人黄色免费 | 久久精品久久精品久久精品 | av电影网站在线观看 | 91精品动漫在线观看 | 国产精品视频一区二区三区四 | 免费国产羞羞网站视频 | 日本爽快片100色毛片视频 | 久久不雅视频 | 成人小视频免费在线观看 | wwwxxx视频 | 久久国产秒 | 午夜亚洲视频 | 蜜桃视频在线免费播放 | 国产美女一区二区在线观看 | 黑人一区二区三区四区五区 | 欧美大穴 | 国产又白又嫩又紧又爽18p | 国产一级毛片av | 中文字幕欧美亚洲 | 欧美1区2区 | 国产乱色精品成人免费视频 | 欧美成人精品欧美一级 | 密室逃脱第一季免费观看完整在线 | 欧美一区二区黄色 | 黄色片免费在线播放 | chinese军人gay呻吟 | 一级做a爱片毛片免费 |