設計模式讀書筆記 外觀模式

2022-02-16 18:33:14 字數 2260 閱讀 7607

)講的是如何將乙個介面轉換成客戶所需要的另乙個接

口,它的目的在於

解決介面的不相容性問題。現在這裡有這樣乙個模式,它的目的在於如何簡化介面,它可以將多個

類的複雜的一切隱藏在背後,只顯露

出乙個乾淨美觀的外觀。

晚上睡覺之前,你總是喜歡看電視,在你進入臥室的時候你需要完成以下幾個步驟:開啟電燈、開啟空調、放

心銀幕(假如你家

有)、開啟電視通過這麼些繁瑣的步驟後你終於可以看電視了,但是你要睡覺了呢?又要去進行繁瑣

的關閉動作。這裡你就需要乙個外觀

模式了,通過實現乙個更加合理的介面外觀類將這些動作都包裝起來,實現一

鍵「看電視」、一鍵「關電視」。這就是外觀模式的動機

一、模式定義

系統的耦合度。

二、模式結構

三、模式實現

例項的uml圖

首先是四個元件(電視、電燈、空調、銀幕)

1

public

class

television 56

public

void

off()

9 }

1

public

class

light 56

public

void

off()

9 }

1

public

class

aircondition 56

public

void

off()

9 }

1

public

class

screen 56

public

void

down()

9 }

然後是比較強大、乾淨、美觀的外觀

1

public

class

watchtvswtichfacade

1314

public

void

on()

2021

public

void

off()

27 }

客戶端

1

public

class

client

16 }

執行結果

從上面的使用通過使用外觀模式,客戶可以非常方便的實現比較複雜的功能。

四、模式優缺點

優點

1、引入外觀模式,是客戶對子系統的使用變得簡單了,減少了與子系統的關聯物件,實現了子系統與客戶之間

的松耦合關係。

2、只是提供了乙個訪問子系統的統一入口,並不影響使用者直接使用子系統類

3、降低了大型軟體系統中的編譯依賴性,並簡化了系統在不同平台之間的移植過程

缺點   1、不能很好地限制客戶使用子系統類,如果對客戶訪問子系統類做太多的限制則減少了可變性和靈活性

2、在不引入抽象外觀類的情況下,增加新的子系統可能需要修改外觀類或客戶端的源**,違背了「開閉原則」

五、使用場景

1、當要為乙個複雜子系統提供乙個簡單介面時可以使用外觀模式。

2、客戶程式與多個子系統之間存在很大的依賴性。引入外觀類將子系統與客戶以及其他子系統解耦,可以提

高子系統的獨立性和

可移植性

六、模式總結

1、  外觀模式的主要優點就在於減少了客戶與子系統之間的關聯物件,使用客戶對子系統的使用變得簡單了,

也實現了客戶與子

系統之間的松耦合關係。它的缺點就在於違背了「開閉原則」。

2、  如果需要實現乙個外觀模式,需要將子系統組合進外觀中,然後將工作委託給子系統執行。

大話設計模式讀書筆記 外觀模式

人物 大鳥,小菜 事件 小菜與大鳥談起了 大鳥就藉著 裡 和 的概念給小菜談起了外觀模式 外觀模式 1.借用 的 和 簡單闡述外觀模式 2.對外觀模式進行小結 設計思路如圖 買 1 public void buy 2 slf4j public class stock2 買 1 public void...

大話設計模式讀書筆記之外觀模式

1.定義 為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。2.uml類圖 3.簡單 實現 package com.guo.facadepattern public class subsystemone package com.guo.facade...

設計模式讀書筆記

設計模式 就乙個類而言,應該僅有乙個引起它變化的原因。如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或者抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受意想不到的破壞。對於擴充套件是開放的,對於更改是封閉的。無論模組是多麼的 封閉 都會...