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