定義:為子系統的一組接口提供統一的接口,使得子系統更容易使用.
優(yōu)點(diǎn):
- 減少了系統的依賴(lài).系統只依賴(lài)于被門(mén)面模式封裝好的高級接口,而不依賴(lài)于子系統的內部接口.
- 提高靈活性.子系統內部的改變,不會(huì )對門(mén)面對象產(chǎn)生影響.
- 提高安全性.將子系統內部的實(shí)現透明化.
缺點(diǎn):
- 不符合開(kāi)閉原則.對于門(mén)面對象,若要修改,則需要重新寫(xiě).
應用場(chǎng)景:
- 當要為訪(fǎng)問(wèn)一系列復雜的子系統提供一個(gè)簡(jiǎn)單入口時(shí)。facade類(lèi)很好的屏蔽了子系統中因不斷演化而產(chǎn)生的越來(lái)越多的小類(lèi),降低訪(fǎng)問(wèn)子系統的復雜性。
- 客戶(hù)端程序與多個(gè)子系統之間存在很大的依賴(lài)性。引入外觀(guān)類(lèi)可以將子系統與客戶(hù)端解耦,提高子系統的獨立性和可移植性。
- 當需要構建一個(gè)層次結構的子系統時(shí),使用facade模式定義子系統中每層的入口點(diǎn)。如果子系統之間是相互依賴(lài)的,則可以讓它們僅通過(guò)facade進(jìn)行通訊,從而簡(jiǎn)化子系統間的依賴(lài)關(guān)系。
代碼:
https://github.com/DewMaple/DesignMode_Java/blob/master/src/com/design_mode/FacadePattern.java
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。