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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

Proxy(代理)–對象結構型模式

一、意圖
為其他對象提供一種代理以控制對這個對象的訪問。

二、動機
1.在面向對象系統中,有些對象由于某種原因(比如對象創建的開銷很大,或者某些操作需要安全控制,或者需要進程外的訪問等),直接訪問會給使用者、或者系統結構帶來很大麻煩。
2.如何在不失去透明操作對象的同時來管理/控制這些對象特有的復雜性?增加一層間接層是軟件開發中常見的解決方式。

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

四、結構

這是運行時刻一種可能的代理結構的對象圖。

五、效果
Proxy模式在訪問對象時引入了一定程度的間接性。
1.Remote Proxy可以隱藏一個對象存在于不同地址空間的事實。
2.Virtual Proxy可以進行最優化,例如根據要求創建對象。
3.Protection Proxies和Smart Reference都允許在訪問一個對象時有一些附加的內務處理。

六、實現
1.重載C++中的存取運算符。
2.Proxy并不總是需要知道實體的類型。

七、要點總結
1.“增加一層間接層”是軟件系統中對許多復雜問題的一種常見解決方法。在面向對象系統中,直接使用某些對象會帶來很多問題,作為間接層的Proxy對象便是解決這一問題的常用手段。
2.具體proxy設計模式的實現方法、實現粒度都相差很大,有些可能對單個對象做細粒度的控制,入copy-on-wirte技術,有些可能對組件模式提供抽象代理層,在架構層次對對象做proxy。
3.Proxy并不一定要求保持接口完整的一致性,只要能夠實現間接控制,有時候損及一些透明性是可以接受的。

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

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

本文為李建忠設計模式視頻的筆記以及《設計模式-可復用面向對象的軟件的基礎》和自己的部分見解

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。