`
linbzh
  • 浏览: 71341 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

proxy代理模式

阅读更多

      proxy代理模式,其意图是"为其他对象提供一种代理以控制对这个对象的访问",通俗的讲就是,一个类A请一个代言人C去跟另一个类B打交道。在"四人帮"的《设计模式》中代理一章有关代理的"动机"的那节,举文档编辑器加载图像为例,说得很形象、透彻。

      根据不同的用途,proxy代理模式又可以分为:远程代理、虚代理、访问控制(保护)代理、引用代理、审计代理、同步化代理、copy-on-write代理、缓存代理。
      远程代理:提供访问远程对象的途径(RMI的应用)。
      虚代理:由于创建目标对象的内存资源开销很大,延迟对该资源的访问,只有在用到的时候才被创建出来。
      访问控制代理:控制对原始对象的访问。通过设置不同的允许策略,控制不同客户对代理的特定部分的访问控制,保证对象应该有不同的访问权限。
      引用代理:维护一个对目标对象的引用计数,只有当没有客户在使用目标对象时才去删除它。
      审计代理:在执行目标对象的一个方法之前或者之后做一些审计的行为。也就是AOP编程。
      同步化代理:防止若干个客户对象对目标对象的并行访问,在真正访问之前检查目标对象是否被锁定。类似于数据库的事务锁。
      copy-on-write代理:类似于virtual proxy虚代理,把拷贝延迟到只有客户需要时,才真正采取行动。在《设计模式》中描述得很清楚:"拷贝一个庞大而复杂的对象是一种开销很大的操作,如果这个拷贝根本没有被修改,那么这些开销就没有必要。用copy-on-write代理可以延迟这一过程,可以保证只有当这个对象被修改时才对它进行拷贝。在实现copy-on-write代理是必须对实体进行引用计数。拷贝代理会增加引用计数。只有当用户请求一个修改该实体的操作时,代理才会真正的拷贝它,在这种情况下,代理还必须减少实体的引用计数。当引用的数目为零时,这个实体将被删除。"。
      缓存代理:为某一个目标操作的结果提供临时的存储空间,以便多个客户可以共享这些结果,而不必去访问实际对象,可以获得一个更快的响应时间。类似于flyweight享元模式。

分享到:
评论

相关推荐

    Proxy代理模式经典实例(绝对OOP)

    Proxy代理模式是面向对象设计模式中的重要组成部分,它在软件工程中扮演着关键角色,尤其在Java编程中。代理模式的主要目的是为一个对象提供一个替身或者占位符,以便控制对这个对象的访问。这种设计模式允许我们...

    Proxy 代理模式

    Proxy代理模式是设计模式中的一种,它在Java中扮演着重要的角色,特别是在处理远程调用、安全性、缓存以及日志记录等方面。代理模式的基本思想是为一个对象提供一个替身或者占位符,以便控制对这个对象的访问。在这...

    详解设计模式中的proxy代理模式及在Java程序中的实现

    综上所述,Proxy代理模式是设计模式中的一个重要组成部分,它允许我们在不改变原始对象的情况下,通过代理对象实现对原始对象的控制和扩展。在Java中,通过Java的Proxy类和InvocationHandler接口,我们可以轻松地...

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

    ### C#面向对象设计模式纵横谈(13):Proxy 代理模式(结构型模式) #### 重要概念:代理模式 代理模式是一种常用的结构型设计模式,它通过为另一个对象提供一个代理,来控制对该对象的访问。这种模式在软件工程中...

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

    本文将深入探讨C#中的一个关键设计模式——代理模式,它属于结构型模式的一种,适用于管理和控制对象的访问。我们将从概念、分类、实现方式以及实际应用等方面进行详细的讲解。 1. **代理模式概念**: 代理模式是一...

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

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

    设计模式C++学习之代理模式(Proxy)

    代理模式是一种设计模式,它是结构型模式之一,主要用于在客户端和目标对象之间建立一个代理对象,以便控制对目标对象的访问。在C++中,代理模式可以用来为其他对象提供一种代理以控制对这个对象的访问,或者增加...

    解析proxy代理模式在Ruby设计模式开发中的运用

    Proxy代理模式是一种结构型设计模式,主要解决的问题是:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全...

    设计模式之代理模式proxy.zip

    代理模式是一种常用的设计模式,它在软件开发中扮演着重要的角色。代理模式允许我们为一个对象创建一个代理,这个代理对象在客户端和目标对象之间起到中介的作用,可以增强或控制对目标对象的访问。代理模式的主要...

    C++设计模式编程中proxy代理模式的使用实例

    代理模式典型的结构图为: 实际上,代理模式的想法非常简单。 代理模式的实现: 完整代码示例(code):代理模式的实现很简单,这里为了方便初学者的学习和参考,将给出完整的实现代码(所有代码采用 C++实现,并...

    设计模式之代理模式proxy

    **设计模式之代理模式(Proxy Pattern)** 设计模式是软件工程中的一种最佳实践,它是在特定情境下解决常见问题的模板。代理模式是其中一种行为设计模式,它的核心思想是为一个对象提供一个替身或者代理,以控制对...

    设计模式之代理模式Proxy

    代理模式是设计模式中的一种结构型模式,它在对象交互中起到了中介的作用,允许通过代理对象来控制对原对象的访问。代理模式的核心思想是为一个对象提供一个替身,以便增加新的功能或者控制对原对象的访问。这种模式...

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

    代理模式是一种设计模式,属于结构型模式之一,其主要目的是为其他对象提供一个代理,以控制对该对象的访问。在实际应用中,代理模式能够帮助我们实现如下的功能: 1. 远程代理:代理对象可以代表一个位于远程系统...

    Proxy Pattern 代理模式

    Proxy Pattern 代理模式 采用JAVA实现,可以下载看看。

    jdbc proxy 代理类

    JDBC代理主要涉及两个技术领域:AOP(面向切面编程)和设计模式中的代理模式。 【描述】:“代码对应的blog:http://blog.csdn.net/keyboardsun/archive/2008/01/30/2072865.aspx” 这个博客文章详细介绍了如何...

    Proxy 模式学习代码

    Proxy模式是一种设计模式,它允许我们为一个对象创建一个代理对象,这个代理对象在客户端和目标对象之间起到中介的作用。这种模式在软件工程中广泛应用,主要用于控制对真实对象的访问,提供额外的功能,如日志、...

    spring proxy代理模仿

    这里我们探讨的“spring proxy代理模仿”主要指的是Spring AOP(面向切面编程)中的动态代理实现。Spring AOP通过代理模式为我们提供了在运行时向目标对象添加拦截器或切面的能力,这在进行日志记录、性能监控、事务...

    c++-设计模式之代理模式(Proxy)

    代理模式(Proxy Pattern)是一种结构型设计模式,用于为其他对象提供一种代理以控制对这个对象的访问。代理模式通常用于保护、延迟加载、记录请求等场景,可以在不改变原有对象的情况下为其增加新的功能。 代理...

    java 设计模式之代理模式(Proxy Pattern)实现代码及设计详解:动态代理模式、静态代理模式

    在这些模式中,代理模式(Proxy Pattern)是一种常用的结构型设计模式,它允许我们为一个对象创建一个代理,该代理对象在客户端和目标对象之间起到中介的作用,可以增加额外的功能或控制访问。 代理模式分为两种...

Global site tag (gtag.js) - Google Analytics