大B:“說說在什麼情況下可以使用它吧!”
小A:“1、爲一個比較複雜的子系統提供一個簡單的接口。2、將客戶程序與子系統的實現部分分離,提高子系統的獨立性和可移植性。3、簡化子系統間的依賴關係。”
大B:外觀模式(Facadepattern)涉及到子系統的一些類。所謂子系統,是爲提供一系列相關的特徵(功能)而緊密關聯的一組類。例如,一個Account類、Address類和CreditCard類相互關聯,成爲子系統的一部分,提供在線客戶的特徵。在真實的應用系統中,一個子系統可能由很多類組成。子系統的客戶爲了它們的需要,需要和子系統中的一些類進行交互。客戶和子系統的類進行直接的交互會導致客戶端對象和子系統(Figure1)之間高度耦合。任何的類似於對子系統中類的接口的修改,會對依賴於它的所有的客戶類造成影響。