一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - 詳解Java適配器模式

詳解Java適配器模式

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

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

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

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

1.適配器模式

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

2.適配器模式使用

java適配器模式有兩種,類適配器和對(duì)象適配器

(1)類適配器demo

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

先寫接口b

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

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

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

接口a

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

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

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

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

(2)對(duì)象適配器demo

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

這時(shí)候我們使用對(duì)象適配器的話可以這樣寫。

?
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像死的一樣,毫無(wú)靈魂,好吧,我們改改。

?
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();
  }
 }
 
}

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

?
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();
  }
 }
 
}

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

3.適配器模式的使用場(chǎng)景

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

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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 四虎在线视频免费观看 | 四虎国产欧美成人影院 | 亚洲午夜精品久久久久久人妖 | 成年男女免费大片在线观看 | 日韩欧美中文字幕一区二区三区 | 女海盗斯蒂内塔的复仇2免费观看 | 欧美另类亚洲 | 大乳奶水bbw| 99视频在线看观免费 | 亚洲视频一区在线播放 | 日本艳鉧动漫1~6在线观看 | 好男人免费高清在线观看2019 | 免费真实播放国产乱子伦 | 欧美日韩国产中文字幕 | 亚洲精品在线免费观看视频 | 臀控福利大臀的网站 | 亚洲欧美久久婷婷爱综合一区天堂 | 精品国产91久久久久久久 | 精品小视频在线观看 | 欧美18一19性高清hd4k | 无码AV精品一区二区三区 | 亚洲日韩中文字幕一区 | 亚洲男人天堂2023 | 国产欧美日韩专区毛茸茸 | 72张让男人一看就硬的图片 | 99爱在线观看| 九九大香尹人视频免费 | 亚洲精品免费视频 | 草嫩社区 | 日本在线视频免费观看 | 国产日产欧产精品精品软件 | 全弄乱纶小说 | 无限好资源免费观看 | 厨房play黄瓜进入 | 国产日韩欧美 | 亚欧洲乱码专区视频 | 天天躁天天碰天天看 | 日本欧美一二三区色视频 | 性插图动态图无遮挡 | 日韩视频免费 | 996热视频 |