1. 程式人生 > >關於動態代理模式的理解

關於動態代理模式的理解

比如windows桌面的快捷方式,你在訪問時其實訪問到的是快捷方式指向的地址,這個快捷方式就相當於一個代理伺服器,在你訪問後執行了其中的定位效果,比如我們開發一個介面,但是我們不想讓其他人直接訪問,我們加一個代理,也就是在外面再封裝一層,其他人只能通過代理器訪問,如果我們想做一些限制,比如某些ip不能訪問,那麼直接在代理器中增加限制即可,而不需要更改原介面.

那什麼是動態代理呢?在代理前邊加上動態兩個字就說明代理器不是一開始就有的,是隨需求動態生成的,還是接著上面的例子,Windows桌面你可以看到很多的快捷方式的圖示,你明明沒有去建立這些快捷方式,這些快捷方式是哪來的呢?其實就是動態生成的,在你安裝軟體的時候有些應用會詢問你是否建立快捷方式,當然有很多也是預設生成的.你可以把這些動態生成的快捷方式理解為一種動態的代理模式.

在java中你可以理解為你開發了一個介面,然後想建立一個代理器,代理器的目標是某個ip進來就禁止訪問,但是你後來想增加幾個禁止訪問的ip,或者你想幹脆增加一些其他的方法,這個時候你要去改代理器,這就麻煩了,每次要改需求的時候就要去改代理器,你就想能不能我每次動態生成一個代理器滿足我的需求,於是就有了動態代理.