設(shè)計模式 (九)代理模式(proxy)

設(shè)計模式 (九)代理模式(proxy)

ID:1981309

大小:53.00 KB

頁數(shù):4頁

時間:2017-11-14

設(shè)計模式 (九)代理模式(proxy)_第1頁
設(shè)計模式 (九)代理模式(proxy)_第2頁
設(shè)計模式 (九)代理模式(proxy)_第3頁
設(shè)計模式 (九)代理模式(proxy)_第4頁
資源描述:

《設(shè)計模式 (九)代理模式(proxy)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、設(shè)計模式(九)代理模式(Proxy)代理模式(Proxy)就是為其他對象提供一種代理以控制這個對象的訪問,一個對象不想直接訪問這個對象具體Subject類:定義了RealSubject和Proxy的公用接口,這樣就可以任何使用RealSubject的地方都可以用ProxyRealSubject類:定義了Proxy所代表的真實實體。Proxy類:保存一個引用使得代理可以訪問實體,并提供一個與Subject的接口相同的接口,這樣代理就可以用來代替實體。具體的代理模式的原理圖:簡單的展示了一下對于Proxy的原理,然后今天自己琢磨了一

2、下時序圖也簡單的做了一下,因為一直沒有接觸過,可能有好多錯誤呢:簡單的敘述了一下,一個請求的提交過程,每次在調(diào)用一個類的方法的時候,都先經(jīng)過這個類的代理(Proxy),下面就是一個簡單的例子來筆記一下:[java]?viewplaincopy1.package?com.designpattern.proxy;??2.??3.public?interface?Phone?{??4.????public?void?show();??5.}??[java]?viewplaincopy1.package?com.designpatter

3、n.proxy;??2.??3.public?class?IPhone4S?implements?Phone?{??4.??5.????private?String?owner;??6.??7.????public?IPhone4S(String?owner)?{??8.????????this.owner?=?owner;??9.????}??10.??11.????@Override??12.????public?void?show()?{??13.????????System.out.println("I'm?"?+?ow

4、ner??14.????????????????+?"'s?IPhone4S?which?can?do?nothing?while?just?a?phone!");??15.????}??16.}??[java]?viewplaincopy1.package?com.designpattern.proxy;??2.??3.public?class?Proxy?implements?Phone?{??4.??5.????private?String?owner;??6.????private?IPhone4S?phone;??7.

5、??8.????public?Proxy(String?owner)?{??9.????????this.owner?=?owner;??10.????}??11.??1.????@Override??2.????public?void?show()?{??3.????????if?(phone?==?null)?{??4.????????????phone?=?new?IPhone4S(owner);??5.????????}??6.????????phone.show();??7.??8.????}??9.}??[java]

6、?viewplaincopy1.package?com.designpattern.proxy;??2.??3.public?class?Client?{??4.????public?static?void?main(String[]?args)?{??5.????????Proxy?proxy?=?new?Proxy("halberd");??6.????????proxy.show();??7.????}??8.}??[html]?viewplaincopy1.I'm?halberd's?IPhone4S?which?can

7、?do?nothing?while?just?a?phone!??這樣就簡單的實現(xiàn)了代理模式,其實對于大多數(shù)結(jié)構(gòu)型模式來說都一樣,解決問題的思想是一樣的,都是從添加中間件的方式達(dá)到一個解耦合的作用。使用代理模式,能夠在不改變原來代碼工商的基礎(chǔ)上對某一對象進(jìn)行額外的控制,從而更好的體現(xiàn)對象中的單一職責(zé)。但是對于靜態(tài)代理來說,一個接口只能服務(wù)于一種類型,如果要代理方法很多的時候,則要為每一個方法定義接口。這樣就要學(xué)習(xí)一下動態(tài)代理和反射機(jī)制。今天被迫當(dāng)了一天工人,好累啊,先睡了,明天找時間研究一下動態(tài)代理和反射機(jī)制,然后再補充到這里.

8、.....本文轉(zhuǎn)自csdn:http://blog.csdn.net/column/details/first-study-pattern.html

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。