国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看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知音

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

延伸 · 閱讀

精彩推薦
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 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产黄色免费看 | 亚洲高清精品视频 | 国产在线观 | 99久久久国产精品 | 成人久 | 欧美三级视频 | 色日韩 | 91av免费| 成人免费观看cn | 久久久久久久97 | 亚洲免费在线播放 | 欧美日韩久久精品 | 婷婷色国产偷v国产偷v小说 | 精品一区二区三区在线观看 | 综合久久综合 | 午夜视频免费 | 国产精品永久久久久久久久久 | 黄色片视频在线观看免费 | 成人看片毛片免费播放器 | 精品免费视频 | 深夜福利影院 | 亚洲精品一区二区三区在线 | 全部免费毛片在线播放 | 亚洲福利影院 | 久久大陆 | www.青青草 | 亚洲人成网亚洲欧洲无码 | 国产精品久久久久久久久久久久久 | 毛片网站在线 | 日韩成人在线视频 | 精品视频二区三区 | 台湾av在线 | 日本激情综合网 | 中文字幕在线免费观看 | 欧美在线视频一区 | 国产精品久久久久久久久久久免费看 | 亚洲高清视频一区二区 | 欧美综合网 | 欧美激情一区二区三区 | 欧美日韩在线一区二区三区 | 我和我的祖国电影在线观看免费版高清 |