1析藕、定義
外觀模式(Facade),是一種通過為多個(gè)復(fù)雜的子系統(tǒng)提供一個(gè)一致的接口,而使這些子系統(tǒng)更加容易被訪問的模式挫剑。該模式對(duì)外有一個(gè)統(tǒng)一接口或悲,外部應(yīng)用程序不用關(guān)心內(nèi)部子系統(tǒng)的具體的細(xì)節(jié),這樣會(huì)大大降低應(yīng)用程序的復(fù)雜度怪与,提高了程序的可維護(hù)性夺刑。
2、角色劃分
2.1分别、外觀(Facade)角色(角色一)
為多個(gè)子系統(tǒng)對(duì)外提供一個(gè)共同的接口遍愿。
2.2、子系統(tǒng)(Sub System)角色(角色二)
實(shí)現(xiàn)系統(tǒng)的部分功能耘斩,客戶可以通過外觀角色訪問它沼填。
3、UML關(guān)系圖
image.png
4括授、優(yōu)點(diǎn)
1坞笙、外觀(Facade)模式是“迪米特法則”的典型應(yīng)用。
2荚虚、降低了子系統(tǒng)與客戶端之間的耦合度薛夜,使得子系統(tǒng)的變化不會(huì)影響調(diào)用它的客戶類。
3曲管、對(duì)客戶屏蔽了子系統(tǒng)組件却邓,減少了客戶處理的對(duì)象數(shù)目,并使得子系統(tǒng)使用起來更加容易院水。
4腊徙、降低了大型軟件系統(tǒng)中的編譯依賴性,簡化了系統(tǒng)在不同平臺(tái)之間的移植過程檬某,因?yàn)榫幾g一個(gè)子系統(tǒng)不會(huì)影響其他的子系統(tǒng)撬腾,也不會(huì)影響外觀對(duì)象。
5恢恼、缺點(diǎn)
1民傻、不能很好地限制客戶使用子系統(tǒng)類。
2、增加新的子系統(tǒng)可能需要修改外觀類或客戶端的源代碼漓踢,違背了“開閉原則”牵署。