2011-09-02 58 views

回答

7

委派站在客戶端和實際實現之間,通常從客戶端隱藏/過濾/增強實現的某些功能。

Facade提供了一個隱藏更復雜的邏輯和/或協調的課程粒度API,通常捆綁幾個一起工作的實現,通常作爲客戶的便利。從Java每個

例子:

代表團:該Collections.unmodifiableList()返回保持原來的列表,並委託給它的所有方法的參考列表,但拋出的異常如果mutator方法被調用。

門面:如果你看過print a java DOM XML document所需的代碼量很可笑,那麼你要做的第一件事就是創建一個實用的方法來隱藏所有的醜陋 - 這種方法可以被認爲是一個門面。

+0

謝謝,但請您詳細闡述Facade。 – Ankit

+2

對於正面的例子,假設你有一個授權服務,它公開了一個門面來檢查授權。因此對於服務的用戶來說,只需調用一個方法並瞭解授權狀態就可以了。但是,該服務可能會從數據庫或緩存中內部查詢授權狀態並處理用戶的所有角色,從而爲該服務的用戶提供易於使用的外觀並隱藏複雜性 – Scorpion

+0

因此,是否正確說他們基本上是平等的,除了立面混合多個「主力」班,而不是代表團暴露一個班,儘管加強了? – kaboom

相關問題