適用性 |
- 在需要用比較通用和復(fù)雜的對(duì)象指針代替簡單的指針的時(shí)候,使用P r o x y 模式。下面是一 些可以使用P r o x y 模式常見情況:
1) 遠(yuǎn)程代理(Remote Proxy )為一個(gè)對(duì)象在不同的地址空間提供局部代表。 NEXTSTEP[Add94] 使用N X P r o x y 類實(shí)現(xiàn)了這一目的。Coplien[Cop92] 稱這種代理為“大使” (A m b a s s a d o r )。 2 )虛代理(Virtual Proxy )根據(jù)需要?jiǎng)?chuàng)建開銷很大的對(duì)象。在動(dòng)機(jī)一節(jié)描述的I m a g e P r o x y 就是這樣一種代理的例子。 3) 保護(hù)代理(Protection Proxy )控制對(duì)原始對(duì)象的訪問。保護(hù)代理用于對(duì)象應(yīng)該有不同 的訪問權(quán)限的時(shí)候。例如,在C h o i c e s 操作系統(tǒng)[ C I R M 9 3 ]中K e m e l P r o x i e s 為操作系統(tǒng)對(duì)象提供 了訪問保護(hù)。 4 )智能指引(Smart Reference )取代了簡單的指針,它在訪問對(duì)象時(shí)執(zhí)行一些附加操作。 它的典型用途包括:
- 對(duì)指向?qū)嶋H對(duì)象的引用計(jì)數(shù),這樣當(dāng)該對(duì)象沒有引用時(shí),可以自動(dòng)釋放它(也稱為S m a r tP o i n t e r s[ E d e 9 2 ] )。
- 當(dāng)?shù)谝淮我靡粋€(gè)持久對(duì)象時(shí),將它裝入內(nèi)存。
- 在訪問一個(gè)實(shí)際對(duì)象前,檢查是否已經(jīng)鎖定了它,以確保其他對(duì)象不能改變它。
|