日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

适配器模式(Adapter模式)

發布時間:2024/8/1 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 适配器模式(Adapter模式) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

將一個類的接口轉換為客戶希望的另外一個接口

適配器分為類適配器模式和對象適配器模式(前者應用較少)

適配器模式中主要包括三個角色:

(1)目標接口 :當前系統業務所期待的接口

(2)適配者類:現存的接口

(3)適配器類:轉換器,將適配者接口轉化為目標接口

其實是舊的接口希望通過適配器類,實現適配者類中的功能,成為一個新的接口

舊的接口,沒有適配者中的功能(只有request方法)

新的接口,有適配者中的功能(千方百計想能夠調用specificRequest方法)

?1.類適配器模式實現:

?

//目標接口 interface Target {public void request(); } //適配者類 class Adaptee {public void specificRequest(){ System.out.println("適配者中的業務代碼被調用!");} } //適配器類 //適配器類繼承適配者類,而且實現目標接口(這意味著適配器類需要實現目標接口里的request方法) //再加上繼承適配者類,所以適配器類中有兩個方法:request方法和specificRequest方法 class ClassAdapter extends Adaptee implements Target {public void request(){specificRequest();} } //客戶端代碼 public class ClassAdapterTest {public static void main(String[] args){System.out.println("類適配器模式測試:");Target target = new ClassAdapter();//此時Target接口就不止一個request方法了,而是和適配器類一樣也有//request和specificRequest兩個方法了target.request();} }

2.對象適配器模式

?

Adapter適配器類實現了舊目標接口,所以必須重寫request函數

Adapter適配器雖然只有request函數,但是它的request函數里調用了一個適配者類對象的specificRequest方法,所以還是可以調用適配者類中的specificRequest方法

?

//目標接口 interface Target {public void request(); } //適配者接口 class Adaptee {public void specificRequest(){ System.out.println("適配者中的業務代碼被調用!");} } //適配器類 class Adapter implements Target {private Adaptee adaptee;public Adapter(Adaptee adaptee){this.adaptee=adaptee;}public void request(){adaptee.specificRequest();} } //客戶端代碼 public class Test {public static void main(String[] args){System.out.println("對象適配器模式測試:");Adaptee adaptee = new Adaptee();Target target = new Adapter(adaptee);target.request();} }

?簡潔版:

? //目標接口 interface Target {public void request(); } //適配者接口 class Adaptee {public void specificRequest(){ System.out.println("適配者中的業務代碼被調用!");} } //適配器類 class Adapter implements Target {public void request(){核心這句,在request函數里面調用一個適配者類對象的specificRequest方法adaptee.specificRequest();} } //客戶端代碼 public class Test {public static void main(String[] args){Adaptee adaptee = new Adaptee();Target target = new Adapter(adaptee);target.request();} }?

總結

以上是生活随笔為你收集整理的适配器模式(Adapter模式)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。