代碼說明
l IAccount就是抽象主題角色。代理對象和被代理對象都遵循這個接口,這樣代理對象就能替換被代理對象。
l AccountProxy就是代理主題角色。代理主題通常會存在一些邏輯或預處理或後處理操作,不會僅僅是對操作的轉發。
l Account就是真實主題角色。
何時采用
l 代理模式應用非常廣泛,如果你希望降低對象的使用復雜度、或是提升對象使用的友好度、或是提高對象使用的效率都可以考慮代理模式。
實現要點
l 代理對象和被代理對象都遵循一致的接口。
l 在某些情況下,可以不必保持接口一致性,如果封裝確實需要損失一些透明度,那麼也可以認為是Proxy。
注意事項
l Proxy、Facade以及Adapter可能都是對對象的一層封裝,側重點不同。Proxy基於一致的接口進行封裝,Facade針對封裝子系統,轉化為高層接口,而Adapter的封裝是處於適配接口的目的。