輕松掌握Java適配器模式
在計算機編程中,適配器模式(有時候也稱包裝樣式或者包裝)將一個類的接口適配成用戶所期待的。一個適配允許通常因為接口不兼容而不能在一起工作的類工作在一起,做法是將類自己的接口包裹在一個已存在的類中。
特點:將兩個不兼容的類通過接口實現在一起工作
企業(yè)級開發(fā)和常用框架中的應用:流接口,例如將字符流轉換為字節(jié)流輸出是用的outputstreamreader
適配器模式分為類適配器和對象適配器:
舉例:電腦只有USB接口,但是鍵盤只有圓口,這時就需要一個適配器,讓鍵盤能輸入數據到電腦
類適配器:
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(); } }
對象適配器:
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(); } }
相對而言,對象適配器通過組合的方式比類適配器通過集成的方式要更靈活,推薦平時使用對象適配器。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Java使用lambda自定義Arrays.sort排序規(guī)則說明
這篇文章主要介紹了Java使用lambda自定義Arrays.sort排序規(guī)則說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05RestTemplate實現發(fā)送帶headers的GET請求
這篇文章主要介紹了RestTemplate實現發(fā)送帶headers的GET請求,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10Spring Boot啟動過程(四)之Spring Boot內嵌Tomcat啟動
這篇文章主要介紹了Spring Boot啟動過程(四)之Spring Boot內嵌Tomcat啟動的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-04-04初識Spring Boot框架之Spring Boot的自動配置
本篇文章主要介紹了初識Spring Boot框架之Spring Boot的自動配置,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-04-04Java動態(tài)獲取實現某個接口下所有的實現類對象集合
今天小編就為大家分享一篇關于Java動態(tài)獲取實現某個接口下所有的實現類對象集合,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12