在計算機編程中,適配器模式(有時候也稱包裝樣式或者包裝)將一個類的接口適配成用戶所期待的。一個適配允許通常因為接口不兼容而不能在一起工作的類工作在一起,做法是將類自己的接口包裹在一個已存在的類中。
特點:將兩個不兼容的類通過接口實現在一起工作
企業級開發和常用框架中的應用:流接口,例如將字符流轉換為字節流輸出是用的outputstreamreader
適配器模式分為類適配器和對象適配器:
舉例:電腦只有USB接口,但是鍵盤只有圓口,這時就需要一個適配器,讓鍵盤能輸入數據到電腦
類適配器:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
package com.test.adapter; public class Computer { public void show(USB usb){ usb.recive(); System.out.println( "電腦顯示輸入的數據" ); } public static void main(String[] args) { Computer c = new Computer(); USB u = new USBAdapter(); c.show(u); } } class KeyBoard{ public void input(){ System.out.println( "鍵盤輸入數據" ); } } /** * 適配器接口 */ interface USB{ public void recive(); } /** * 具體的適配器 */ class USBAdapter extends KeyBoard implements USB{ public void recive() { System.out.println( "我是USB適配器,我使圓口的鍵盤能和USB接口電腦連接" ); super .input(); } } |
對象適配器:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
package com.test.adapter; public class Computer { public void show(USB usb){ usb.recive(); System.out.println( "電腦顯示輸入的數據" ); } public static void main(String[] args) { Computer c = new Computer(); KeyBoard k = new KeyBoard(); USB u = new USBAdapter(k); c.show(u); } } class KeyBoard{ public void input(){ System.out.println( "鍵盤輸入數據" ); } } /** * 適配器接口 */ interface USB{ public void recive(); } /** * 具體的適配器 */ class USBAdapter implements USB{ private KeyBoard k; public USBAdapter(KeyBoard k) { this .k = k; } public void recive() { System.out.println( "我是USB適配器,我使圓口的鍵盤能和USB接口電腦連接" ); k.input(); } } |
相對而言,對象適配器通過組合的方式比類適配器通過集成的方式要更靈活,推薦平時使用對象適配器。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。