Facade (正面)模式,用於爲一組負責的功能接口,提供一個簡單而且特定的接口。
比如Java.sql 提供了許多操作數據庫的接口,功能衆多,現在有一個BookData 對象,需要與數據庫進行交互,根據FACADE 模式,設計出一個DB 類,封裝了BookData的數據庫操作。這樣,DB 類與java.sql 直接交互,對外提供了BookData 的操作接口。
public class DB
{
public viod addBook(){...};
public void removeBook(){...};
...
}
DB類隱藏了java.sql ,在用戶看來,java.sql 使不存在的,它藏在DB 類的後面。
Facade 模式缺點:關注的重點由被隱藏的對象變爲facades,需要每個用戶都同意這一約束,而不去越過它直接訪問之下的對象。