Java適配器模式(adapter)
文章目錄
適配器模式
什么是適配器模式
模式中的角色
適配器的實現方式
1.類適配器方式
2.對象適配器方式
工作中的場景
適配器模式
什么是適配器模式
將一個類的接口轉換成客戶希望的另外一個接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以在一起工作。
模式中的角色
目標接口(Target):客戶所期待的接口。目標可以是具體的或抽象
的類,也可以是接口。
需要適配的類(Adaptee):需要適配的類或適配者類。
適配器(Adapter):通過包裝一個需要適配的對象,把原接口轉換成
目標接口
適配器的實現方式
1.類適配器方式
被適配的類
/** * 被適配的類 * (相當于例子中的,PS/2鍵盤) * @author Administrator * */ public class Adaptee { public void request(){ System.out.println("可以完成客戶請求的需要的功能...."); } }
1
2
3
4
5
6
7
8
9
10
11
12
目標類
/** * 定義適配器的功能 目標類 * @author dengp * */ public interface Target { /** * 處理請求的方法 */ void handleReq(); }
1
2
3
4
5
6
7
8
9
10
11
適配器類
/** * 適配器 (類適配器方式) * (相當于usb和ps/2的轉接器) * @author 波波烤鴨 * */ public class Adapter extends Adaptee implements Target { @Override public void handleReq() { super.request(); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
測試
public static void main(String[] args) { Client c = new Client(); Target t = new Adapter(); t.handleReq(); }
1
2
3
4
5
2.對象適配器方式
適配器類
/** * 適配器 (對象適配器方式,使用了組合的方式跟被適配對象整合) * (相當于usb和ps/2的轉接器) * @author 波波烤鴨 * */ public class Adapter2 implements Target { private Adaptee adaptee; @Override public void handleReq() { adaptee.request(); } public Adapter2(Adaptee adaptee) { super(); this.adaptee = adaptee; } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
測試
public static void main(String[] args) { Adaptee a = new Adaptee(); Target t = new Adapter2(a); t.handleReq(); }
1
2
3
4
5
工作中的場景
經常用來做舊系統改造和升級
如果我們的系統開發之后再也不需要維護,那么很多模式都是沒必要的,但是不幸的是,事實卻是維護一個系統的代價往往是開發一個系統的數倍。
JavaSE中使用到適配器模式的場景
java.io.InputStreamReader(InputStream)
java.io.OutputStreamWriter(OutputStream)
~適配模式比較簡單,就介紹到這兒了
Java
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。