外觀模式(Facade),為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,此模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。
“對(duì)于面向?qū)ο笥幸欢ɑA(chǔ)的朋友效览,即使沒有聽過外觀模式,也完全有可能在很多時(shí)候使用它荡短,因?yàn)樗昝赖膶?shí)現(xiàn)了依賴倒轉(zhuǎn)原則和迪米特法則的思想丐枉,所以是非常常用的模式之一”
外觀模式的使用
- 分三個(gè)階段來說
1)在設(shè)計(jì)初期階段,應(yīng)該有意識(shí)的將不同的兩個(gè)層分離掘托,比如經(jīng)典的三層架構(gòu)矛洞,就需要考慮在數(shù)據(jù)層、業(yè)務(wù)邏輯層和表現(xiàn)層的層與層之間建立外觀Facade烫映,這樣可以為復(fù)雜的子系統(tǒng)提供一個(gè)簡單的接口,使得耦合度大大降低噩峦。
2)在開發(fā)階段锭沟,子系統(tǒng)往往因?yàn)椴粩嗟闹貥?gòu)演化而變得越來越復(fù)雜,大多數(shù)的模式使用時(shí)也都會(huì)產(chǎn)生很多很小類识补,這本是好事族淮,但也給外部調(diào)用它們的用戶程序帶來了使用上的困難,增加外觀Facade可以提供一個(gè)簡單的接口凭涂,減少他們之間的依賴祝辣。
3)在維護(hù)一個(gè)遺留的大型系統(tǒng)時(shí),可能這個(gè)系統(tǒng)已經(jīng)非常難以維護(hù)和擴(kuò)展了切油,但是你新功能開發(fā)又一定要依賴它蝙斜。這時(shí)可以為新系統(tǒng)開一個(gè)外觀Facade類,來提供設(shè)計(jì)粗糙或高度復(fù)雜的遺留代碼的比較清晰簡單的接口澎胡,讓新系統(tǒng)與Facade對(duì)象交互孕荠,F(xiàn)acade與遺留代碼交互所有復(fù)雜工作娩鹉。