描述
外觀模式(Façade pattern)涉及到子系統的一些類。所謂子系統,是為提供一系列相關的特征(功能)而緊密關聯的一組類。例如,一個Account類、Address類和CreditCard類相互關聯,成為子系統的一部分,提供在線客戶的特征。
在真實的應用系統中,一個子系統可能由很多類組成。子系統的客戶為了它們的需要,需要和子系統中的一些類進行交互。客戶和子系統的類進行直接的交互會導致客戶端對象和子系統之間高度耦合。任何的類似于對子系統中類的接口的修改,會對依靠于它的所有的客戶類造成影響。
外觀模式(Façade pattern)很適用于在上述情況。外觀模式(Façade pattern)為子系統提供了一個更高層次、更簡單的接口,從而降低了子系統的復雜度和依靠。這使得子系統更易于使用和治理。
外觀是一個能為子系統和客戶提供簡單接口的類。當正確的應用外觀,客戶不再直接和子系統中的類交互,而是與外觀交互。外觀承擔與子系統中類交互的責任。實際上,外觀是子系統與客戶的接口,這樣外觀模式降低了子系統和客戶的耦合度。
我們可以看到:外觀對象隔離了客戶和子系統對象,從而降低了耦合度。當子系統中的類進行改變時,客戶端不會像以前一樣受到影響。
盡管客戶使用由外觀提供的簡單接口,但是當需要的時候,客戶端還是可以視外觀不存在,直接訪問子系統中的底層次的接口。這種情況下,它們之間的依靠/耦合度和原來一樣。
讓我們建立一個應用:
(1) 接受客戶的具體資料(賬戶、地址和信用卡信息)
(2) 驗證輸入的信息
(3) 保存輸入的信息到相應的文件中。
這個應用有三個類:Account、Address和CreditCard。每一個類都有自己的驗證和保存數據的方法。
Listing 22.1: AccountClass
新聞熱點
疑難解答