輕松掌握J(rèn)ava適配器模式
在計(jì)算機(jī)編程中,適配器模式(有時(shí)候也稱包裝樣式或者包裝)將一個(gè)類的接口適配成用戶所期待的。一個(gè)適配允許通常因?yàn)榻涌诓患嫒荻荒茉谝黄鸸ぷ鞯念惞ぷ髟谝黄?,做法是將類自己的接口包裹在一個(gè)已存在的類中。
特點(diǎn):將兩個(gè)不兼容的類通過接口實(shí)現(xiàn)在一起工作
企業(yè)級(jí)開發(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ì)象適配器通過組合的方式比類適配器通過集成的方式要更靈活,推薦平時(shí)使用對(duì)象適配器。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java設(shè)計(jì)模式之適配器模式(Adapter模式)介紹
- Java Adapter 適配器模式(類適配器,對(duì)象適配器)優(yōu)缺點(diǎn)對(duì)比
- 實(shí)例解析Java設(shè)計(jì)模式編程中的適配器模式使用
- Java設(shè)計(jì)模式之適配器模式簡(jiǎn)介
- Java結(jié)構(gòu)型設(shè)計(jì)模式中的適配器模式與橋接模式解析
- java設(shè)計(jì)模式之適配器模式
- 初識(shí)Java設(shè)計(jì)模式適配器模式
- java設(shè)計(jì)模式之適配器模式(Adapter)
- Java適配器模式定義與用法示例
- 23種設(shè)計(jì)模式(5) java適配器模式
相關(guān)文章
springboot集成測(cè)試最小化依賴實(shí)踐示例
這篇文章主要為大家介紹了springboot集成測(cè)試最小化依賴實(shí)踐示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06Java使用lambda自定義Arrays.sort排序規(guī)則說明
這篇文章主要介紹了Java使用lambda自定義Arrays.sort排序規(guī)則說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05RestTemplate實(shí)現(xiàn)發(fā)送帶headers的GET請(qǐng)求
這篇文章主要介紹了RestTemplate實(shí)現(xiàn)發(fā)送帶headers的GET請(qǐng)求,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10Spring Boot啟動(dòng)過程(四)之Spring Boot內(nèi)嵌Tomcat啟動(dòng)
這篇文章主要介紹了Spring Boot啟動(dòng)過程(四)之Spring Boot內(nèi)嵌Tomcat啟動(dòng)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-04-04初識(shí)Spring Boot框架之Spring Boot的自動(dòng)配置
本篇文章主要介紹了初識(shí)Spring Boot框架之Spring Boot的自動(dòng)配置,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-04-04Java動(dòng)態(tài)獲取實(shí)現(xiàn)某個(gè)接口下所有的實(shí)現(xiàn)類對(duì)象集合
今天小編就為大家分享一篇關(guān)于Java動(dòng)態(tài)獲取實(shí)現(xiàn)某個(gè)接口下所有的實(shí)現(xiàn)類對(duì)象集合,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12