定義:適配器模式是將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另一個(gè)接口,適配器模式使得原本由于接口不兼容而不能一起工作的類可以一起工作,在軟件設(shè)計(jì)中我們需要將一些“現(xiàn)存的對(duì)象”放到新的環(huán)境中,而新環(huán)境要求的接口是現(xiàn)對(duì)象所不能滿足的,我們可以使用這種模式進(jìn)行接口適配轉(zhuǎn)換,使得“老對(duì)象”符合新環(huán)境的要求。
為阿巴嘎等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及阿巴嘎網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站建設(shè)、成都做網(wǎng)站、阿巴嘎網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
使用場(chǎng)景:1、系統(tǒng)需要使用現(xiàn)有的類,而此類的接口不符合系統(tǒng)的需要;2、通過接口轉(zhuǎn)換,將一個(gè)類插入另一個(gè)類中,用電器來打個(gè)比喻:有一個(gè)電器的插頭是三腳的,而現(xiàn)有的插座是兩孔的,要使插頭插上插座,我們需要一個(gè)插頭轉(zhuǎn)換器,這個(gè)轉(zhuǎn)換器即是適配器。
適配器模式涉及三個(gè)角色:
1、源(Adaptee):需要被適配的對(duì)象或類型,相當(dāng)于插頭;
2、適配器(Adapter):連接源和目標(biāo)對(duì)象的中間對(duì)象,相當(dāng)于轉(zhuǎn)換器;
3、目標(biāo)角色(Target):定義了客戶端期望的接口,相當(dāng)于插座;
如何實(shí)現(xiàn)呢?
使用繼承(類適配器)或者聚合(對(duì)象適配器)已有的對(duì)象實(shí)現(xiàn)想要的目標(biāo)接口,優(yōu)先推薦使用對(duì)象適配器(基于組合優(yōu)先于繼承)。
適配器模式結(jié)構(gòu)圖:
以下我們先以對(duì)象適配為例來分析,以下是源碼:
package cn.com.pep.model.adapter.a1; /** * * @Title: AdvancedMediaPlayer * @Description: 源對(duì)象的接口 * @author wwh * @date 2022-9-5 10:10:14 */ public interface AdvancedMediaPlayer { /** * @Title: playVlc * @Description: * @param filename */ public void playVlc(String filename); /** * @Title: playMp4 * @Description: * @param filename */ public void playMp4(String filename); }