為系統中的一組接口提供一個一緻的界面,facade模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。
provide a unified interface to a set of interfaces in a subsystem. facade defines a higher-level interface that makes the subsystem easier to use.

外觀模式的結構中包兩種角色。
+ 子系統(subsystem):子系統是若幹個類的集合,這些類的執行個體協同合作為使用者提供所需要的功能,子系統中任何類都不包含外觀類的執行個體引用。
+ 外觀(facade):外觀是一個類,該類包含子系統中全部或部分類的執行個體引用,當使用者想要和子系統中的若幹個類的執行個體打交道時,可以代替地和子系統的外觀類的執行個體打交道。
使客戶和子系統中的類無耦合,并且使子系統使用起來更加友善。
外觀隻是提供了一個更加簡潔的界面,并不影響使用者直接使用子系統中的類。
子系統中任何類對方法的内容進行修改,不影響外觀類的代碼。
對于一個複雜的子系統,需要為使用者提供一個簡單的互動操作。
不希望客戶代碼和子系統中的類有耦合,以便提高子系統的獨立性和可移植性。
當整個系統需要建構一個層次結構的子系統,不希望這些子系統互相直接的互動。
<a href="https://github.com/androidwolf">mygithub</a>