天天看點

Java設計模式--外觀模式外觀模式Facade Pattern類圖模式的結構與使用簡單的例子運作截圖外觀模式的優點适用外觀模式的情景下載下傳源碼請到

為系統中的一組接口提供一個一緻的界面,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.

Java設計模式--外觀模式外觀模式Facade Pattern類圖模式的結構與使用簡單的例子運作截圖外觀模式的優點适用外觀模式的情景下載下傳源碼請到

外觀模式的結構中包兩種角色。

+ 子系統(subsystem):子系統是若幹個類的集合,這些類的執行個體協同合作為使用者提供所需要的功能,子系統中任何類都不包含外觀類的執行個體引用。

+ 外觀(facade):外觀是一個類,該類包含子系統中全部或部分類的執行個體引用,當使用者想要和子系統中的若幹個類的執行個體打交道時,可以代替地和子系統的外觀類的執行個體打交道。

Java設計模式--外觀模式外觀模式Facade Pattern類圖模式的結構與使用簡單的例子運作截圖外觀模式的優點适用外觀模式的情景下載下傳源碼請到

使客戶和子系統中的類無耦合,并且使子系統使用起來更加友善。

外觀隻是提供了一個更加簡潔的界面,并不影響使用者直接使用子系統中的類。

子系統中任何類對方法的内容進行修改,不影響外觀類的代碼。

對于一個複雜的子系統,需要為使用者提供一個簡單的互動操作。

不希望客戶代碼和子系統中的類有耦合,以便提高子系統的獨立性和可移植性。

當整個系統需要建構一個層次結構的子系統,不希望這些子系統互相直接的互動。

<a href="https://github.com/androidwolf">mygithub</a>