日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Proxy(代理)--对象结构型模式

發(fā)布時(shí)間:2023/12/4 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Proxy(代理)--对象结构型模式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Proxy(代理)–對(duì)象結(jié)構(gòu)型模式

一、意圖
為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問。

二、動(dòng)機(jī)
1.在面向?qū)ο笙到y(tǒng)中,有些對(duì)象由于某種原因(比如對(duì)象創(chuàng)建的開銷很大,或者某些操作需要安全控制,或者需要進(jìn)程外的訪問等),直接訪問會(huì)給使用者、或者系統(tǒng)結(jié)構(gòu)帶來很大麻煩。
2.如何在不失去透明操作對(duì)象的同時(shí)來管理/控制這些對(duì)象特有的復(fù)雜性?增加一層間接層是軟件開發(fā)中常見的解決方式。

三、適用性
1.遠(yuǎn)程代理(Remote Proxy)為一個(gè)對(duì)象在不同的地址空間提供局部代表。
2.虛代理(Virtual Proxy)根據(jù)需要?jiǎng)?chuàng)建開銷很大的對(duì)象。
3.保護(hù)代理(Protection Proxy)控制對(duì)原始對(duì)象的訪問。
4.智能指引(Smart Reference)取代了簡單的指針,它在訪問對(duì)象時(shí)執(zhí)行一些附加操作。

四、結(jié)構(gòu)

這是運(yùn)行時(shí)刻一種可能的代理結(jié)構(gòu)的對(duì)象圖。

五、效果
Proxy模式在訪問對(duì)象時(shí)引入了一定程度的間接性。
1.Remote Proxy可以隱藏一個(gè)對(duì)象存在于不同地址空間的事實(shí)。
2.Virtual Proxy可以進(jìn)行最優(yōu)化,例如根據(jù)要求創(chuàng)建對(duì)象。
3.Protection Proxies和Smart Reference都允許在訪問一個(gè)對(duì)象時(shí)有一些附加的內(nèi)務(wù)處理。

六、實(shí)現(xiàn)
1.重載C++中的存取運(yùn)算符。
2.Proxy并不總是需要知道實(shí)體的類型。

七、要點(diǎn)總結(jié)
1.“增加一層間接層”是軟件系統(tǒng)中對(duì)許多復(fù)雜問題的一種常見解決方法。在面向?qū)ο笙到y(tǒng)中,直接使用某些對(duì)象會(huì)帶來很多問題,作為間接層的Proxy對(duì)象便是解決這一問題的常用手段。
2.具體proxy設(shè)計(jì)模式的實(shí)現(xiàn)方法、實(shí)現(xiàn)粒度都相差很大,有些可能對(duì)單個(gè)對(duì)象做細(xì)粒度的控制,入copy-on-wirte技術(shù),有些可能對(duì)組件模式提供抽象代理層,在架構(gòu)層次對(duì)對(duì)象做proxy。
3.Proxy并不一定要求保持接口完整的一致性,只要能夠?qū)崿F(xiàn)間接控制,有時(shí)候損及一些透明性是可以接受的。

八、相關(guān)模式
Adapter:適配器Adapter為它所適配的對(duì)象提供一個(gè)不同的接口。想反,代理提供了與它實(shí)體相同的接口。然而,用于訪問保護(hù)的代理可能會(huì)拒絕執(zhí)行實(shí)體會(huì)執(zhí)行的操作,因此,它的接口實(shí)際上可能只是實(shí)體接口的一個(gè)子集。
Decorator:盡管decoratro的實(shí)現(xiàn)部分與代理相似,但decortor的目的不一樣。Decorator為對(duì)象添加一個(gè)或多個(gè)功能,而代理則控制對(duì)對(duì)象的訪問。
代理的實(shí)現(xiàn)與decorator的實(shí)現(xiàn)類似,但是在相似程度傻姑娘有所差別,Protection Proxy的實(shí)現(xiàn)可能與decorator的實(shí)現(xiàn)差不多。另一方面,Remote Proxy不包含對(duì)實(shí)體的直接引用,而只是一個(gè)間接引用,如“主機(jī)ID,主機(jī)的局部地址。”Virtual Proxy開始的時(shí)候使用一個(gè)間接引用,例如一個(gè)文件名,但最終將獲得并使用一個(gè)直接引用。

九、舉例說明
找工作時(shí)找HR就是直接訪問,找獵頭就是代理。

本文為李建忠設(shè)計(jì)模式視頻的筆記以及《設(shè)計(jì)模式-可復(fù)用面向?qū)ο蟮能浖幕A(chǔ)》和自己的部分見解

總結(jié)

以上是生活随笔為你收集整理的Proxy(代理)--对象结构型模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。