《HeadFirst設計模式》讀書筆記 第7章

2021-12-30 02:50:26 字數 1516 閱讀 9796

定義

外觀模式(facade pattern)提供了乙個統一的介面,用來訪問子系統中的一群介面。外觀定義了乙個高層介面,讓子系統更加容易使用。

從上面的圖可以看出,facade類對子系統進行了一下封裝,客戶只需要和facade類打交道,不需要接觸子系統中的各個類,也不需要了解子系統中各個類間的關係。從這個角度來說,客戶也就從元件中的子系統中解耦了,不需要依賴於子系統中具體的類了。

外觀模式的乙個重要的目的就是簡化系統,提供給客戶乙個簡單的介面,方便客戶使用。

**實現

例子是為家庭影院構造外觀,讓**電影的步驟盡可能地簡單。下圖給出了類圖。

首先看看hometheate***cade這個高層介面,它提供了6個介面分別執行6個動作,每個動作是通過呼叫子系統中其它的類來實現的。

public class hometheate***cade

// 開始**名為「movie」的電影介面

public void watchmovie(string movie)

public void endmovie()

public void listentocd(string cdtitle)

public void endcd()

public void listentoradio(double frequency)

public void endradio()

}因為子系統中類太多了,這裡只列出乙個,其它的類似。

public class amplifier

public void on()

public void off()

public void setstereosound()

public void setsurroundsound()

public void setvolume(int level)

public void settuner(tuner tuner)

public void set***(***player ***)

public void setcd(cdplayer cd)

public string tostring()

}測試驅動**,也是客戶**:

public class hometheatertestdrive

}本章金句

外觀模式不只是簡化了子系統的介面,也將客戶從元件的子系統中解耦

外觀只是對子系統的介面進行了更高層次的抽象,客戶還是可以直接呼叫子系統中的類的,當然一般情況這是不必要的,只要外觀介面定義的好

外觀模式符合「最少知識原則」

介面卡模式和外觀模式的差別:

兩種模式都是對其它的介面的再次封裝。差別在介面卡強調對乙個或者多個介面的轉換,而外觀模式則強調簡化介面

Head First 設計模式讀書心得 一

head first 設計模式這本書,從思維認知的角度將原本難以理解和記識的設計模式將得通俗易懂。雲認知 有關思考的思考 如何你想掌握一些知識,學習前要不短的暗示自己,讓你的大腦知道 你學習的這些新的知識很重要 或許你正在為一家你嚮往已經的公司的面試準備寫知識,你將要學習的這些知識對你通過面試至關重...

head first設計模式讀書記錄

設計原則 1 針對介面程式設計而非針對實現 2 多用組合,少用繼承 3 復用的潛力 4 封裝變化 5 開閉原則 對擴充套件開放,對修改關閉 6 依賴倒置原則 7 越常用,越不應修改,把可能的修改扔給必須要改的部分,最好扔給擴充套件。封裝變化 8 最少知識原則 減少類與類的重合,只與密友交流 9 越懶...

《Head First 設計模式》讀書筆記

策略模式 定義演算法族,分別封裝起來,讓他們之間可以互相替換,此模式讓演算法的變化獨立於使用演算法的客戶。oo原則 封裝變化 多用組合,少用繼承 針對介面程式設計,不針對實現程式設計 oo基礎 抽象封裝 多型繼承 觀察者模式 在物件之間定義一對多的依賴,這樣一來,當乙個物件改變狀態,依賴它的物件都會...