java代理模式之靜態(tài)代理
作為一個(gè)初級(jí)開發(fā)者,可能不會(huì)接觸到代理模式,但是在很多框架的使用中都不知不覺使用了代理模式,比如servlet的過(guò)濾器鏈,spring的AOP,以及spring mvc的攔截器等。所以了解代理模式對(duì)于個(gè)人的成長(zhǎng)是不可避免的。
在某些情況下,一個(gè)客戶不想或者不能直接引用一個(gè)對(duì)象,此時(shí)可以通過(guò)一個(gè)稱之為“代理”的第三者來(lái)實(shí)現(xiàn)間接引用。代理對(duì)象可以在客戶端和目標(biāo)對(duì)象之間起到中介的作用,并且可以通過(guò)代理對(duì)象去掉客戶不能看到的內(nèi)容和服務(wù)或者添加客戶需要的額外服務(wù)。
原文和作者一起討論:http://www.cnblogs.com/intsmaze/p/6013461.html
新浪微博:intsmaze劉洋洋哥
通過(guò)引入一個(gè)新的對(duì)象來(lái)實(shí)現(xiàn)對(duì)真實(shí)對(duì)象的操作或者將新的對(duì)象作為真實(shí)對(duì)象的一個(gè)替身,這種實(shí)現(xiàn)機(jī)制即為代理模式,通過(guò)引入代理對(duì)象來(lái)間接訪問(wèn)一個(gè)對(duì)象,這就是代理模式的模式動(dòng)機(jī)。
代理模式(Proxy Pattern) :給某一個(gè)對(duì)象提供一個(gè)代理,并由代理對(duì)象控制對(duì)原對(duì)象的引用。代理模式的英文叫做Proxy或Surrogate,它是一種對(duì)象結(jié)構(gòu)型模式。
代理模式示意結(jié)構(gòu)圖比較簡(jiǎn)單,一般可以簡(jiǎn)化為如下圖所示,但是在現(xiàn)實(shí)中要復(fù)雜很多。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26