Java設計模式之適配器模式的示例詳解
1.什么是適配器模式
將一個類的接口轉換成為客戶希望的另外一個類的接口。適配器(Adapter)模式是的原本由于接口不兼容而不能在一起工作的類,可以一起工作。
比如,小米充電器,可以給小米手機充電,目前,想讓蘋果充電器給小米手機充電。如何完成,這時候需要一個適配器,將小米充電器和蘋果充電器連在一起。
2.如何實現
1)目標接口,該接口是客戶想要使用的接口(蘋果充電器)
2)被適配者,是一個已經存在的接口或抽象類。(小米充電器)
3)適配器,是一個類,該類實現了目標接口,并包含被適配者的引用。
適配器的職責是對被適配者接口(抽象類)與目標接口進行適配
3.代碼實現
1)目標接口
/** * 目標接口,蘋果充電器 */ public interface AppleCharger { public void appleCharger(); }
2)被適配者
/** *被適配者,小米充電器 */ public interface MiCharger { public void miCharger(); }
3)小米手機使用小米充電器進行充電
/** *小米手機,實現小米充電器接口,可以充電 */ public class MiPhone implements MiCharger { @Override public void miCharger() { charging(); } public void charging(){ System.out.println("MiPhone charging....."); } }
4)適配器。需要調用蘋果充電器的方法給小米手機充電。
該類實現了目標接口(AppleChager),并包含被適配者引用(MiCharger)
/** * 適配器, * 該類實現目標接口AppleCharge,并包含被適配者(MiCharger)的引用 */ public class AppleAdapter implements AppleCharger { MiCharger charge; public AppleAdapter(MiCharger b){ this.charge = b; } /** * 調用蘋果充電器的方法 */ @Override public void appleCharger() { //給使用小米充電器的設備充電 charge.miCharger(); } }
5)測試類
public class TestMain { public static void main(String args []){ AppleAdapter adapter = new AppleAdapter(new MiPhone()); adapter.appleCharger();//調用蘋果充電器,給小米手機充電 } }
到此這篇關于Java設計模式之適配器模式的示例詳解的文章就介紹到這了,更多相關Java適配器模式內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java NIO Selector用法詳解【含多人聊天室實例】
這篇文章主要介紹了Java NIO Selector用法,結合實例形式分析了Java NIO Selector基本功能、原理與使用方法,并結合了多人聊天室實例加以詳細說明,需要的朋友可以參考下2019-11-11解決springmvc使用@PathVariable路徑匹配問題
這篇文章主要介紹了解決springmvc使用@PathVariable路徑匹配問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02淺析Java中靜態(tài)代理和動態(tài)代理的應用與區(qū)別
代理模式在我們生活中很常見,而Java中常用的兩個的代理模式就是動態(tài)代理與靜態(tài)代理,這篇文章主要為大家介紹了二者的應用與區(qū)別,需要的可以參考下2023-08-08RocketMQ?Broker實現高可用高并發(fā)的消息中轉服務
RocketMQ消息代理(Broker)是一種高可用、高并發(fā)的消息中轉服務,能夠接收并存儲生產者發(fā)送的消息,并將消息發(fā)送給消費者。它具有多種消息存儲模式和消息傳遞模式,支持水平擴展和故障轉移等特性,可以為分布式應用提供可靠的消息傳遞服務2023-04-04SpringBoot基于SpringSecurity表單登錄和權限驗證的示例
這篇文章主要介紹了SpringBoot基于SpringSecurity表單登錄和權限驗證的示例。文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09