我學(xué)設(shè)計(jì)模式:外觀(Facade)模式

定義:為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,F(xiàn)acade模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加易用。

外觀模式比較簡(jiǎn)單,兩個(gè)字:封裝!外觀模式是為了解決類與類之間的依賴關(guān)系的,將類與類之間(比如A、B、C)的關(guān)系放在一個(gè)Facade類中,從外部看來(lái)只要調(diào)用Facade類中的方法,就可以自動(dòng)調(diào)用A、B、C的功能,從而降低了類之間的耦合度。

認(rèn)識(shí)外觀模式:封裝交互,簡(jiǎn)化調(diào)用

外觀模式示意圖
外觀模式示意圖

如圖所示,外觀模式減少了外部與子系統(tǒng)內(nèi)多個(gè)模塊的交互,松散耦合,從而讓外部可以更簡(jiǎn)單地使用子系統(tǒng)。一個(gè)直觀的例子就是電腦,外部來(lái)看我們面對(duì)的是電腦,只要對(duì)電腦上的按鈕操作即可,但是電腦內(nèi)部有很多子系統(tǒng),如CPU、Memory、Disk等。當(dāng)我們啟動(dòng)或關(guān)閉電腦時(shí),只要對(duì)封裝好的Computer操作即可,而不需對(duì)每個(gè)子系統(tǒng)啟動(dòng)。

外觀模式示例
外觀模式示例
  • 外觀模式的調(diào)用順序


    外觀模式的調(diào)用順序
    外觀模式的調(diào)用順序

何時(shí)使用外觀模式

  • 希望為一個(gè)復(fù)雜的子系統(tǒng)提供一個(gè)簡(jiǎn)單的接口
  • 想讓客戶端和抽象類的實(shí)現(xiàn)部分松散耦合
  • 構(gòu)建多層結(jié)構(gòu)系統(tǒng)時(shí),可以使用外觀作為每層的入口


如果覺得有用,歡迎關(guān)注我的微信,有問題可以直接交流:

你的關(guān)注是對(duì)我最大的鼓勵(lì)!
你的關(guān)注是對(duì)我最大的鼓勵(lì)!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容