1. 程式人生 > >代理模式詳解

代理模式詳解

以及 代理類 修改 單實例 返回結果 idt 結果的處理 靜態 ima

內容:

1、什麽是代理模式

2、動態代理模式

3、靜態代理模式

1、什麽是代理模式

代理模式的定義:代理模式給某一個對象提供一個代理對象,並由代理對象控制對原對象的引用。通俗的來講代理模式就像生活中常見的中介。

舉個例子來說明:比如通過二手車商買二手車,如下圖所示:

技術分享圖片

為什麽要使用代理模式:

(1)中介隔離作用:在某些情況下,一個客戶類不想或者不能直接引用一個委托對象,而代理類對象可以在

客戶類和委托對象之間起到中介的作用,其特征是代理類和委托類實現相同的接口

(2)開閉原則,增加功能:代理類除了是客戶類和委托類的中介之外,我們還可以通過給代理類增加額外的功能來

擴展委托類的功能,這樣做我們只需要修改代理類而不需要再修改委托類,符合代碼設計的開閉原則。

代理類主要負責為委托類預處理消息、過濾消息、把消息轉發給委托類,以及事後對返回結果的處理等。

代理類本身並不真正實現服務,而是同過調用委托類的相關方法,來提供特定的服務。真正的業務功能

還是由委托類來實現,但是可以在業務功能執行的前後加入一些公共的服務。例如我們想給項目加入

緩存、日誌這些功能,我們就可以使用代理類來完成,而沒必要打開已經封裝好的委托類。

另外代理模式可以分為動態代理模式和靜態代理模式,詳細看後面的內容

代理模式簡單實例:

2、動態代理模式

3、靜態代理模式

代理模式詳解