看了很多本關於設計模式的書,大多書都會把這種模式— 外觀模式放在第乙個位置介紹。
在《設計模式》一書中是這麼介紹外觀模式的:為子系統中的一組介面提供乙個統一介面。facade 模式定義了乙個更高層的介面,使子系統更加容易使用。
這段話大致意思是說:我們需要用一種比原來更簡單的方式,與系統進行互動。也就是說,給子系統提供乙個臉面。
舉例說明:原來有乙個舊的系統a ,這個系統已經很久沒有人維護了。現在有個專案,需要將新的系統b 與舊的系統a 進行互動。遇到這種情況怎麼辦?是讓專案組的所有人員都去熟悉舊系統?這個時候外觀模式就應該登場了。使用外觀模式,將舊系統中的一些功能和方法進行必要的封裝。專案組的其他開發人員,只需要呼叫封裝後的方法即可。
當然,也可以在介面中新增一些新的功能。
facade 模式可以應用於:
● 不需要使用乙個複雜系統的所有功能,而且可以建立乙個新的類,包含訪問系統的所有規則。如果只需要使用系統的部分功能(這是通常的情況),那麼你為新類所建立的 api 將比原系統的 api 簡單得多。
● 希望封裝或者隱藏原系統。
● 希望使用原系統的功能,而且還希望增加一些新的功能。
● 編寫新類的成本小於所有人學會使用或者未來維護原系統上所需的成本。
這種模式,其實在很多應用中都很常見。只是大家在使用的時候,並沒有在意他也是一種設計模式罷了。模式很簡單,就不用**舉例說明了。
設計模式之外觀模式(Facade)
facade外觀模式,是一種結構型模式,它主要解決的問題是 元件的客戶和元件中各種複雜的子系統有了過多的耦合,隨著外部客戶程式和各子系統的演化,這種過多的耦合面臨很多變化的挑戰。在這裡我想舉乙個例子 比如,現在有一輛汽車,我們 客戶程式 要啟動它,那我們就要發動引擎 子系統1 使四個車輪 子系統2 ...
設計模式之外觀模式Facade
什麼是外觀模式,我想大家在網上一搜就有一大把結果,告訴你什麼是外觀模式,可能定義不完全一樣,但是意思確差不多,也就是它為子系統中的一組介面提供了乙個統一的介面 或者叫做介面 這樣的好處就是隱藏了子系統的細節。下面就簡單的談談我本人對該模式的使用和理解 1 為什麼要用這個東西 比如一,當你在設計分層架...
設計模式之外觀模式(Facade)
外觀模式是為了解決類與類之家的依賴關係的,像spring一樣,可以將類和類之間的關係配置到配置檔案中,而外觀模式就是將他們的關係放在乙個facade類中,降低了類類之間的耦合度,該模式中沒有涉及到介面。看下類圖 我們以乙個計算機的啟動過程為例 我們先看下實現類 public class cpu pu...