代理模式是對象的結構模式。(JDK已經對動態代理提供了很好的支持)
1.定義:代理模式是給某一個對象提供一個代理對象,並由代理對象控制對原對象的引用。
2.代理模式的兩個作用:
1)增強被代理對象的功能(爲代碼增加前後置操作)
2)對被代理對象施加控制(如Filter)
3.代理的種類
1)遠程(Remote)代理
2)虛擬(Virtual)代理
3)Copy-on-Write代理
4)保護(Protect or Access)代理
5)Cache代理
6)防火牆(Firewall)代理
7)同步化(Synchronization)代理
8)智能引用(Smart Reference)代理
注意:一般比較常用的是虛擬,遠程,智能引用,保護等四種代理。
5.代理模式與適配器模式的區別
適配器模式:強調改變接口
代理模式:無法改變接口
6.代理模式與裝飾模式的區別
裝飾模式:強調增強功能。
代理模式:可以增強功能,也可以對對象施加控制。
注意:代理模式和裝飾模式在增強對象的功能方面有不同的特點,代理模式一般是在透明地,不讓客戶端感覺到的情況下, 悄悄地增強的對象的功能。而裝飾模式則是要求客戶端明確知道有那些功能可以選擇,並且明確地選擇想要增加的功能。(重要)