在計(jì)算機(jī)編程中,適配器模式(有時(shí)候也稱包裝樣式或者包裝)將一個(gè)類的接口適配成用戶所期待的。一個(gè)適配允許通常因?yàn)榻涌诓患嫒荻荒茉谝黄鸸ぷ鞯念惞ぷ髟谝黄穑龇ㄊ菍㈩愖约旱慕涌诎谝粋€(gè)已存在的類中。
特點(diǎn):將兩個(gè)不兼容的類通過(guò)接口實(shí)現(xiàn)在一起工作
企業(yè)級(jí)開(kāi)發(fā)和常用框架中的應(yīng)用:流接口,例如將字符流轉(zhuǎn)換為字節(jié)流輸出是用的outputstreamreader
適配器模式分為類適配器和對(duì)象適配器:
舉例:電腦只有USB接口,但是鍵盤只有圓口,這時(shí)就需要一個(gè)適配器,讓鍵盤能輸入數(shù)據(jù)到電腦
類適配器:
package com.test.adapter;public class Computer { public void show(USB usb){ usb.recive(); System.out.println("電腦顯示輸入的數(shù)據(jù)"); }  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("鍵盤輸入數(shù)據(jù)"); }}/** * 適配器接口  */interface USB{ public void recive();}/** * 具體的適配器 */class USBAdapter extends KeyBoard implements USB{ public void recive() { System.out.println("我是USB適配器,我使圓口的鍵盤能和USB接口電腦連接"); super.input(); } }對(duì)象適配器:
package com.test.adapter;public class Computer { public void show(USB usb){ usb.recive(); System.out.println("電腦顯示輸入的數(shù)據(jù)"); }  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("鍵盤輸入數(shù)據(jù)"); }}/** * 適配器接口  */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(); } }相對(duì)而言,對(duì)象適配器通過(guò)組合的方式比類適配器通過(guò)集成的方式要更靈活,推薦平時(shí)使用對(duì)象適配器。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選