`

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

 
阅读更多

为其他对象提供一种代理以控制对这个对象的访问。

对一个对象进行访问控制的一个原因是为了只有在我们确实需要这个对象时才对它进行创建和初始化。

 

1、远程代理(Remote Proxy):为一个对象在不同的地址空间提供局部代表。Remote Proxy负责对请求及其参数进行编码,并向不同地址空间中的实体发送已编码的请求。Remote Proxy可以隐藏一个对象存在于不同地址空间的事实。

2、虚代理(Virtual Proxy):根据需要创建开销很大的对象。Virtual Proxy可以缓存实体的附加信息,以便延迟对它的访问。Virtual Proxy可以进行最优化,例如根据要求创建对象。

3、保护代理(Protection Proxy):控制对原始对象的访问。保护代理用于对象应该有不同的访问权限的时候。Protection Proxy检查调用者是否具有实现一个请求所必须的访问权限。Protection Proxy允许在访问一个对象时有一些附加的内务处理。

4、智能指引(Smart Reference):取代了简单的指针,它在访问对象时执行一些附加操作。Smart Reference 允许在访问一个对象时有一些附加的内务处理。

典型应用包括:

(1)对指向实际对象的引用计数,这样当该对象没有引用时,可以自动释放它。

(2)当第一次引用一个持久对象时,将它装入内存。

(3)在访问一个实际对象前,检查是否已经锁定了它,以确保其他对象不能改变它。

 

Adapter模式:适配器Adapter为它所适配的对象提供了一个不同的接口。相反,代理提供了与它的实体相同的接口。然而,用于访问保护的代理可能会拒绝执行实体会执行的操作,因此,它的接口实际上可能只是实体接口的一个子集。

 

Decorator模式:尽管Decorator的实现部分与代理相似,但Decorator的目的不一样。Decorator为对象添加一个或多个功能,而代理则控制对对象的访问。

 代理的实现与Decorator的实现类似,但是在相似的程度上有所差别。

Protection Proxy的实现可能与Decorator的实现差不多。

Remote Proxy不包含对实体的直接引用,而只是一个间接引用,如“主机ID,主机上的局部地址”。

Virtual Proxy开始的时候使用一个间接引用,例如一个文件名,但最终将获取并使用一个直接引用。

 

 

分享到:
评论

相关推荐

    C#面向对象设计模式纵横谈(13):Proxy 代理模式(结构型模式)

    C#面向对象设计模式纵横谈(13):Proxy 代理模式(结构型模式)

    C#面向对象设计模式纵横谈(13):Proxy 代理模式(结构型模式) (Level 300)

    C#面向对象设计模式纵横谈(13):Proxy 代理模式(结构型模式) (Level 300)

    设计模式--可复用面向对象软件的基础

    4.7 PROXY(代理)——对象结构型模式 4.8 结构型模式的讨论 第五章 行为模式 5.1 CHAIN OF RESPONSIBIL ITY(职责链)——对象行为型模式 5.2 COMMAND(命令)——对象行为型模式 5.3 INTERPRETER(解释器)——类...

    C#面向对象设计模式纵横谈\13 结构型模式Proxy代理模式.zip

    在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要资源... 这是第13节:结构型模式Proxy代理模式

    结构型模式之代理模式(Proxy)

    2、代理模式(Proxy) 用意:为其它对象提供一种代理以控制对这个对象的访问

    Java 动态代理.md

    代理模式(Proxy Pattern)是 23 种设计模式的一种,属于结构型模式。他指的是一个对象本身不做实际的操作,而是通过其他对象来得到自己想要的结果。这样做的好处是可以在目标对象实现的基础上,增强额外的功能操作,...

    代理模式 Proxy Pattern

    在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。

    设计模式可复用面向对象软件的基础.zip

    4.7 Proxy(代理)—对象结构型 模式 137 4.8 结构型模式的讨论 144 4.8.1 Adapter与Bridge 144 4.8.2 Composite、Decorator与Proxy 145 第5章 行为模式 147 5.1 CHAIN OF RESPONSIBIL ITY(职责链) —对象行为型...

    C#面向对象设计模式纵横谈(视频与源码)

    C#面向对象设计模式纵横谈(13):Proxy 代理模式(结构型模式) C#面向对象设计模式纵横谈(14):Chain of Responsibility 职责链模式(行为型模式) C#面向对象设计模式纵横谈(15):(行为型模式) Command 命令模式 ...

    设计模式--C++

    4.7 Proxy(代理)—对象结构型模式 137 4.8 结构型模式的讨论 144 4.8.1 Adapter 与 Bridge 144 4.8.2 Composite、 Decorator 与 Proxy 145 第 5 章 行为模式 147 5.1 CHAIN OF RESPONSIBIL ITY(职责链)—对象...

    设计模式:可复用面向对象软件的基础--详细书签版

    4.7 proxy(代理)—对象结构型 模式 137 4.8 结构型模式的讨论 144 4.8.1 adapter与bridge 144 4.8.2 composite、decorator与proxy 145 第5章 行为模式 147 5.1 chain of responsibil ity(职责链) —对象...

    design-pattern-java.pdf

    七个结构型模式 七个结构型模式 适配器模式-Adapter Pattern 不兼容结构的协调——适配器模式(一) 不兼容结构的协调——适配器模式(二) 不兼容结构的协调——适配器模式(三) 不兼容结构的协调——适配器模式...

    《设计模式可复用面向对象软件的基础》

    1154.5 FACADE(外观)—对象结构型模式 1214.6 Flyweight(享元)—对象结构型模式 1284.7 Proxy(代理)—对象结构型模式 1374.8 结构型模式的讨论 1444.8.1 Adapter与Bridge 1444.8.2 Composite、Decorator与...

    软件设计师必读的书-设计模式

    4.7 Proxy(代理)—对象结构型 模式 137 4.8 结构型模式的讨论 144 4.8.1 Adapter与Bridge 144 4.8.2 Composite、Decorator与Proxy 145 第5章 行为模式 147 5.1 CHAIN OF RESPONSIBIL ITY(职责链) —对象行为型...

    设计模式可复用面向对象软件的基础.

    4.7 Proxy(代理)—对象结构型 模式 137 4.8 结构型模式的讨论 144 4.8.1 Adapter与Bridge 144 4.8.2 Composite、Decorator与Proxy 145 第5章 行为模式 147 5.1 CHAIN OF RESPONSIBIL ITY(职责链) —对象行为型...

    设计模式:可复用面向对象软件的基础

    4.7 Proxy(代理)—对象结构型 模式 137 4.8 结构型模式的讨论 144 4.8.1 Adapter与Bridge 144 4.8.2 Composite、Decorator与Proxy 145 第5章 行为模式 147 5.1 CHAIN OF RESPONSIBIL ITY(职责链) —对象行为型...

    《设计模式》中文版(23个设计模式的介绍与运用)

    4.7 Proxy(代理)—对象结构型 模式 137 4.8 结构型模式的讨论 144 4.8.1 Adapter与Bridge 144 4.8.2 Composite、Decorator与Proxy 145 第5章 行为模式 147 5.1 CHAIN OF RESPONSIBIL ITY(职责链) —对象行为型...

    GOLF设计模式(C++语言版)

    4.7 Proxy(代理)—对象结构型 模式 137 4.8 结构型模式的讨论 144 4.8.1 Adapter与Bridge 144 4.8.2 Composite、Decorator与Proxy 145 第5章 行为模式 147 5.1 CHAIN OF RESPONSIBIL ITY(职责链) —对象...

Global site tag (gtag.js) - Google Analytics