`

代理模式Proxy 为别人做嫁衣(控制对象访问)

阅读更多
为其他对象提供一种代理以控罪对这个对象的访问。
代理大致被分为以下几种:

虚代理:根据需要来创建开销很大的对象,该对象只有在需要的时候才会被真正创建。

远程代理:用来在不同的地址空间上代表同一对象,这个不同的地址空间可以是在本机,也可以在其他机器上。java里最典型的就是RMI技术。

copy-on-write代理:在客户端操作的时候,只有对象确实改变了,才会真的拷贝(克隆)一个目标对象,算是虚代理的一个分支。

保护代理:控制对原始对象的访问,如果有需要,可以给不同的用户提供不同的访问权限。

Cache代理:为那些昂贵操作的结果提供临时的存储空间,以便多个客户端可以共享这些结果。

防火墙代理:保护对象不被恶意用户访问和操作。

同步代理:使多个用户能够同时访问目标对象而没有冲突。

智能指引:在访问对象时执行一些附加操作。比如,对指向实际对象的引用计数。第一次引用一个持久对象时,将它装入内存。

代理类和委托类实现相同的接口。代理类中引用了委托类来实现接口中的方法,在客户端可以使用代理类。

把自己实现的代理模式称为Java的静态代理。缺点是一旦接口发生变化,代理类和委托类都要改变。

把Java内建的对代理模式支持的功能来实现的代理称为Java的动态代理。

Java的动态代理目前只能代理接口,依靠Java的反射机制和动态生成class的技术。

Java的动态代理还是实现AOP的一个重要手段。
分享到:
评论

相关推荐

    设计模式之代理模式proxy

    代理模式是其中一种行为设计模式,它的核心思想是为一个对象提供一个替身或者代理,以控制对该对象的访问。通过代理,可以在不修改原有对象的情况下,增加额外的功能或控制访问权限。 ### 1. 代理模式的角色 - **...

    设计模式之代理模式Proxy

    代理模式的核心思想是为一个对象提供一个替身,以便增加新的功能或者控制对原对象的访问。这种模式经常用于在不修改原有对象的情况下,扩展其功能,同时还能保持客户端代码的透明性。 代理模式主要有三种类型:虚拟...

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

    在C++中,代理模式可以用来为其他对象提供一种代理以控制对这个对象的访问,或者增加额外的功能。代理模式的核心思想是通过代理类来代替实际的对象,使得客户端可以通过代理类与真实对象进行交互,而无需直接操作...

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

    代理模式允许我们为一个对象创建一个代理,这个代理对象在客户端和目标对象之间起到中介的作用,可以增强或控制对目标对象的访问。代理模式的主要优点是它可以提供额外的功能,如缓存、日志、权限控制等,同时不会...

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

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

    代理模式 Proxy Pattern

    代理模式是一种结构型设计模式,它允许程序员为某对象创建一个代理对象来控制对该对象的访问。简单来说,就是在不修改原始类的基础上,通过引入代理对象来扩展类的行为或者控制对原始类的访问。这种模式在软件工程中...

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

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

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

    代理模式是一种设计模式,其核心思想是在原对象的基础上创建一个代理对象,代理对象在客户端和目标对象之间起到中介作用,提供额外的功能或控制对目标对象的访问。代理模式可以用来延迟加载、安全控制、监控行为等。...

    04_ProxyPattern 为别人做嫁衣

    在“为别人做嫁衣”的比喻中,这里的“别人”即目标对象,而“嫁衣”则代表了代理对象,它为目标对象提供了额外的功能或控制,同时保持了与目标对象相同的接口,使得客户端可以透明地使用代理对象,而不必知道底层...

    Android设计模式之代理模式(Proxy Pattern)

    代理模式是设计模式的一种,它的主要目的是在不改变原有对象的基础上,为一个对象提供额外的功能或者控制对这个对象的访问。在Android开发中,代理模式的应用尤为常见,尤其在处理复杂的业务逻辑、网络请求、界面...

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

    代理模式是一种常用的结构型设计模式,它通过为另一个对象提供一个代理,来控制对该对象的访问。这种模式在软件工程中非常有用,尤其是在需要对对象的创建或操作进行额外控制的情况下。 #### 动机(Motivation) ...

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

    代理模式的主要目的是为一个对象提供一个替身或者占位符,以便控制对这个对象的访问。这种设计模式允许我们通过代理类在不修改原有对象的基础上增加新的功能或控制行为。 在Java中,Proxy模式主要依赖于Java的动态...

    代理模式(Proxy Pattern) 1. 概述 1.1 基本概念 1.2 为什么需要代理模式 1.3 代理模式的四个角色 2. 代理模式的类型 2.1 静态代理 2.2 JDK动态代理

    代理模式(Proxy Pattern) 1. 概述 1.1 基本概念 1.2 为什么需要代理模式 1.3 代理模式的四个角色 2. 代理模式的类型 2.1 静态代理 2.2 JDK动态代理 2.3 CGLIB动态代理 3. 代理模式的UML类图和基本实现 3.1 UML类图...

    代理模式小例子

    代理模式是一种设计模式,它在软件工程中扮演着重要的角色,允许我们为其他对象提供一个替代接口,以控制对原对象的访问。这种模式的主要目的是为了增加灵活性、安全性或者为对象提供额外的功能,同时保持客户端代码...

    代理模式 proxy-learn.rar

    代理模式是一种设计模式,它允许我们在不修改原有对象的情况下,为对象添加额外的功能或控制访问。在Java中,代理模式有静态代理和动态代理两种主要实现方式,它们都是为了在客户端与目标对象之间插入一个代理对象,...

    Proxy 模式学习代码

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

    代理模式java代码 Proxy(4)

    代理模式是一种设计模式,它允许我们为一个对象创建一个代理对象,这个代理对象在客户端和目标对象之间起到中介的作用,可以实现额外的功能,比如监控、权限控制、事务管理等,而客户端无需关心这些细节。...

    代理模式(Proxy)原理图

    代理模式是一种设计模式,其定义是为其他对象提供一种代理以控制对这个对象的访问。 代理模式的核心在于提供一个代理来控制和限制对另一个对象的直接访问。这种模式通常用于以下几种情况: 远程代理:当对象位于...

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

    Proxy模式是设计模式中的一种,它提供了一种对对象访问的控制手段,使得在不修改原有对象的基础上,可以通过代理对象来扩展或增强原有对象的功能。在Java编程中,Proxy模式的应用非常广泛,尤其是在处理远程调用、...

Global site tag (gtag.js) - Google Analytics