詳解java設(shè)計(jì)模式中的門面模式
門面模式又叫外觀模式(Facade Pattern),主要用于隱藏系統(tǒng)的復(fù)雜性,并向客戶端提供了一個(gè)客戶端可以訪問系統(tǒng)的接口。
我們知道電視劇操作很簡(jiǎn)單,但是里面的設(shè)計(jì)和原理很少人明白,這就是因?yàn)殡娨晞〉脑O(shè)計(jì)應(yīng)用了門面模式
一個(gè)電視劇至少需要有以下幾個(gè)模塊的功能:信號(hào)輸入、音頻處理、視頻處理、信號(hào)輸出等
/** * 射頻信號(hào)輸入 */ public class SignalIn { // } * 音頻/視頻信號(hào)輸出 public class SignalOut { * 音頻處理 public class AudioProcess { * 視頻處理 public class VideoProcess {
這里面的原理只有少數(shù)專業(yè)人士才能明白,為了讓普通人都能使用電視劇,我們需要給電視劇提供一個(gè)易用的接口
/** * 電視機(jī) */ public interface Television { /** * 電源開關(guān) */ public void powerSwitch(); * 切換頻道 public void channelSwitch(); * 調(diào)節(jié)音量 public void volumeAdjust(); }
對(duì)于大多數(shù)人而言,會(huì)開關(guān)電視,能切換頻道,能調(diào)節(jié)音量就可以了,其他的原理他不需要知道,也能使用電視機(jī)。
假如我們買了一天TCL電視,它內(nèi)部設(shè)計(jì)可能很復(fù)雜,只要實(shí)現(xiàn)了上面的接口,我們就可以使用。
/** * TCL電視機(jī) */ public class TCLTelevision implements Television{ private SignalIn in; private AudioProcess audioProcess; private VideoProcess videoProcess; private SignalOut out; @Override public void powerSwitch() { } public void channelSwitch() { public void volumeAdjust() { }
這就是門面模式的強(qiáng)大之處。隱藏復(fù)雜的邏輯,暴露易用的接口。
到此這篇關(guān)于java設(shè)計(jì)模式之門面模式的文章就介紹到這了,更多相關(guān)java門面模式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中可以實(shí)現(xiàn)負(fù)載均衡的算法詳解
這篇文章主要介紹了Java中可以實(shí)現(xiàn)負(fù)載均衡的算法詳解,在Java中,有多種算法可以實(shí)現(xiàn)負(fù)載均衡,下面是兩個(gè)常見的算法示例,隨機(jī)算法和輪詢算法,需要的朋友可以參考下2023-08-08java?Date獲取本月的開始時(shí)間與結(jié)束時(shí)間
這篇文章主要為大家介紹了java?Date獲取本月的開始時(shí)間與結(jié)束時(shí)間示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2023-05-05Java中null的意義及其使用時(shí)的注意事項(xiàng)說明
這篇文章主要介紹了Java中null的意義及其使用時(shí)的注意事項(xiàng)說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09Eclipse轉(zhuǎn)Itellij IDEA導(dǎo)入Git/svn本地項(xiàng)目的詳細(xì)步驟
這篇文章主要介紹了Eclipse轉(zhuǎn)Itellij IDEA導(dǎo)入Git/svn本地項(xiàng)目,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10JWT 設(shè)置token過期時(shí)間無效的解決
這篇文章主要介紹了JWT 設(shè)置token過期時(shí)間無效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07如何調(diào)用chatGPT實(shí)現(xiàn)代碼機(jī)器人
最近c(diǎn)hatGPT也是非常的火爆,相信大家都看到了,現(xiàn)在提供一種Java調(diào)用chatGPT的方法,我們主要通過兩個(gè)工具來實(shí)現(xiàn),一就是httpclient,二就是hutool,你覺得那種好理解你就用那種即可,今天通過本文給大家分享調(diào)用chatGPT實(shí)現(xiàn)代碼機(jī)器人,感興趣的朋友一起看看吧2022-12-12