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

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

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

服務器之家 - 編程語言 - Java教程 - 23種設計模式(5) java適配器模式

23種設計模式(5) java適配器模式

2021-02-02 11:23阿木俠 Java教程

這篇文章主要為大家詳細介紹了23種設計模式之java適配器模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下

23種設計模式第五篇:java適配器模式

定義:

將一個類的接口轉換成客戶希望的另外一個接口。適配器模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。 

角色:

目標(Target)角色:這就是所期待得到的接口,也就是這類的接口是符合我們要求的。

源(Adapee)角色:我們要使用的接口,但是這個接口不符合我們的要求,也就是現在需要適配的接口。 

適配器(Adaper)角色:適配器類是適配器模式的核心。適配器把源接口轉換成目標接口。顯然,這一角色不可以是接口,而必須是具體類。 

分類:

1、類適配器模式

?
1
2
3
4
5
6
7
8
9
10
class Adaptee {    
  publicvoid specificRequest() {
     System.out.println("特殊請求,這個是源角色");
  }
}
/*這個是目標角色,所期待的接口*/
 
interface Target {    
  publicvoid request();
}

現在想要實現這個Target接口,但是不想重構,想要用上已有的Adaptee類,這時可以定義一個適配器類,繼承想要使用的類,并且實現期待的接口。

?
1
2
3
4
5
class Adapter extends Adaptee implementsTarget{
     publicvoid request() {
          super.specificRequest();
     }
}

這樣,使用適配器類和實現目標接口就完成了計劃,測試:

?
1
2
3
4
5
6
7
public class Test{
     publicstatic void main(String[] args) {
          //使用特殊功能類,即適配類
          Targetadapter = new Adapter();
          adapter.request();
     }
}

2、對象適配器模式

適配器類關聯已有的Adaptee類,并且實現標準接口,這樣做的好處是不再需要繼承。

?
1
2
3
4
5
6
7
8
9
10
11
class Adapter implements Target{
     privateAdaptee adaptee;
 
     publicAdapter (Adaptee adaptee) {
          this.adaptee= adaptee;
     }
 
     publicvoid request() {
          this.adaptee.specificRequest();
     }
}

我們可以想到,此時輸出結果和類適配器模式是相同的,測試:

?
1
2
3
4
5
6
public class Test{
     publicstatic void main(String[] args) {
          Targetadapter = new Adapter(new Adaptee());
          adapter.request();
     }
}

區別:

對象的適配器模式不是使用繼承關系連接到Adaptee類,而是使用委派關系連接到Adaptee類。 

優點: 

復用性

系統需要使用現有的類,而此類的接口不符合系統的需要。那么通過適配器模式就可以讓這些功能得到更好的復用。 

擴展性

在實現適配器功能的時候,可以自由調用自己開發的功能,從而自然地擴展系統的功能。 

缺點:

過多的使用適配器,會讓系統非常零亂,不易整體進行把握。比如,明明看到調用的是A接口,其實內部被適配成了B接口的實現。所以適配器模式不適合在詳細設計階段使用它,它是一種補償模式,專用來在系統后期擴展、修改時所用。 

適用場景: 

1、已經存在的類的接口不符合我們的需求;
2、創建一個可以復用的類,使得該類可以與其他不相關的類或不可預見的類協同工作; 
3、使用一些已經存在的子類而不需要對其進行子類化來匹配接口。 
4、舊的系統開發的類已經實現了一些功能,但是客戶端卻只能以另外接口的形式訪問,但我們不希望手動更改原有類的時候。 

小結:

適配器模式不適合在詳細設計階段使用它,它是一種補償模式,專用來在系統后期擴展、修改時所用,適配器模式更像是一種補救措施。

轉自:java知音

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美精品a∨在线观看不卡 午夜精品影院 | 国产精品久久久久久久久久妇女 | 成人福利在线免费观看 | 国产免费一级 | 男女羞羞视频在线免费观看 | omofun 动漫在线观看 | h视频免费在线 | 色羞羞| 国产成人精品视频在线 | 成人在线免费视频观看 | 久久免费视频一区二区三区 | 久久久tv | 免费国产在线观看 | a黄色网 | 羞羞羞网站 | 国产精品久久久久久久久久久久久久久久 | 国产午夜精品久久久久婷 | 日韩视频一区二区三区四区 | 日本免费一区二区三区四区 | 亚洲片在线观看 | 国产九九九九 | av在线一区二区三区四区 | 欧美爱爱一区二区 | 日韩欧美精品中文字幕 | 久久久久久久久久久国产精品 | 欧美一级淫片免费视频黄 | 成人毛片免费视频 | 国产精品久久久久久久久久久久午夜 | 久久亚洲成人 | 欧美一区二区三区免费观看 | 99欧美视频 | 男女羞羞视频在线观看免费 | 亚洲精品午夜国产va久久成人 | 日本aaaa片毛片免费观看视频 | 久久久久久久久久亚洲精品 | 狠狠99| 黑人一级片视频 | 9191久久久久视频 | 黄色成人在线播放 | 久久久青青草 | 久久日韩 |