代理模式
在某些情況下,一個客戶不想或者不能直接引用一個對象,此時可以通過一個稱之為“代理”的第三者來實現(xiàn)間接引用。代理對象可以在客戶端和目標(biāo)對象之間起到 中介的作用,并且可以通過代理對象去掉客戶不能看到 的內(nèi)容和服務(wù)或者添加客戶需要的額外服務(wù)。
簡單來說代理模式就是通過一個代理對象去訪問一個實際對象,并且可以像裝飾模式一樣給對象添加一些功能。
靜態(tài)代理
所謂靜態(tài)代理即在程序運行前代理類就已經(jīng)存在,也就是說我們編寫代碼的時候就已經(jīng)把代理類的代碼寫好了,而動態(tài)代理則是在程序運行時自動生成代理類。
描述起來太過抽象,看一下代碼就明白是怎么回事了
main
public class Main { public static void main(String[] args) { Water water = new Water(); WaterProxy waterProxy = new WaterProxy(water); waterProxy.drink(); } }