W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
我們?cè)诂F(xiàn)實(shí)生活中使用適配器很多。例如,我們使用存儲(chǔ)卡適配器連接存儲(chǔ)卡和計(jì)算機(jī),因?yàn)橛?jì)算機(jī)僅支持一種類型的存儲(chǔ)卡,并且我們的卡與計(jì)算機(jī)不兼容。
適配器是兩個(gè)不兼容實(shí)體之間的轉(zhuǎn)換器。適配器模式是一種結(jié)構(gòu)模式。
在Java設(shè)計(jì)模式中,適配器模式作為兩個(gè)不兼容接口之間的橋梁。
通過使用適配器模式,我們可以統(tǒng)一兩個(gè)不兼容的接口。
首先我們創(chuàng)建一個(gè)播放器界面來播放任何時(shí)間的媒體文件。
MyPlayer是適配器,它統(tǒng)一了播放媒體文件的接口。
interface Player { public void play(String type, String fileName); } interface AudioPlayer { public void playAudio(String fileName); } interface VideoPlayer { public void playVideo(String fileName); } class MyAudioPlayer implements AudioPlayer { @Override public void playAudio(String fileName) { System.out.println("Playing. Name: "+ fileName); } } class MyVideoPlayer implements VideoPlayer { @Override public void playVideo(String fileName) { System.out.println("Playing. Name: "+ fileName); } } class MyPlayer implements Player { AudioPlayer audioPlayer = new MyAudioPlayer(); VideoPlayer videoPlayer = new MyVideoPlayer(); public MyPlayer(){ } @Override public void play(String audioType, String fileName) { if(audioType.equalsIgnoreCase("avi")){ videoPlayer.playVideo(fileName); }else if(audioType.equalsIgnoreCase("mp3")){ audioPlayer.playAudio(fileName); } } } public class Main{ public static void main(String[] args) { MyPlayer myPlayer = new MyPlayer(); myPlayer.play("mp3", "h.mp3"); myPlayer.play("avi", "me.avi"); } }
上面的代碼生成以下結(jié)果。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: