- 浏览: 25626 次
- 性别:
- 来自: 上海
文章分类
为其他对象提供一种代理以控罪对这个对象的访问。
代理大致被分为以下几种:
虚代理:根据需要来创建开销很大的对象,该对象只有在需要的时候才会被真正创建。
远程代理:用来在不同的地址空间上代表同一对象,这个不同的地址空间可以是在本机,也可以在其他机器上。java里最典型的就是RMI技术。
copy-on-write代理:在客户端操作的时候,只有对象确实改变了,才会真的拷贝(克隆)一个目标对象,算是虚代理的一个分支。
保护代理:控制对原始对象的访问,如果有需要,可以给不同的用户提供不同的访问权限。
Cache代理:为那些昂贵操作的结果提供临时的存储空间,以便多个客户端可以共享这些结果。
防火墙代理:保护对象不被恶意用户访问和操作。
同步代理:使多个用户能够同时访问目标对象而没有冲突。
智能指引:在访问对象时执行一些附加操作。比如,对指向实际对象的引用计数。第一次引用一个持久对象时,将它装入内存。
代理类和委托类实现相同的接口。代理类中引用了委托类来实现接口中的方法,在客户端可以使用代理类。
把自己实现的代理模式称为Java的静态代理。缺点是一旦接口发生变化,代理类和委托类都要改变。
把Java内建的对代理模式支持的功能来实现的代理称为Java的动态代理。
Java的动态代理目前只能代理接口,依靠Java的反射机制和动态生成class的技术。
Java的动态代理还是实现AOP的一个重要手段。
代理大致被分为以下几种:
虚代理:根据需要来创建开销很大的对象,该对象只有在需要的时候才会被真正创建。
远程代理:用来在不同的地址空间上代表同一对象,这个不同的地址空间可以是在本机,也可以在其他机器上。java里最典型的就是RMI技术。
copy-on-write代理:在客户端操作的时候,只有对象确实改变了,才会真的拷贝(克隆)一个目标对象,算是虚代理的一个分支。
保护代理:控制对原始对象的访问,如果有需要,可以给不同的用户提供不同的访问权限。
Cache代理:为那些昂贵操作的结果提供临时的存储空间,以便多个客户端可以共享这些结果。
防火墙代理:保护对象不被恶意用户访问和操作。
同步代理:使多个用户能够同时访问目标对象而没有冲突。
智能指引:在访问对象时执行一些附加操作。比如,对指向实际对象的引用计数。第一次引用一个持久对象时,将它装入内存。
代理类和委托类实现相同的接口。代理类中引用了委托类来实现接口中的方法,在客户端可以使用代理类。
把自己实现的代理模式称为Java的静态代理。缺点是一旦接口发生变化,代理类和委托类都要改变。
把Java内建的对代理模式支持的功能来实现的代理称为Java的动态代理。
Java的动态代理目前只能代理接口,依靠Java的反射机制和动态生成class的技术。
Java的动态代理还是实现AOP的一个重要手段。
发表评论
-
访问者模式Visitor预留通路,回调实现
2014-03-13 16:55 377表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各 ... -
桥接模式Bridge分离抽象和实现
2014-03-13 16:55 490将抽象部分与它的实现部分分离,使它们都可以独立地变化。 桥接 ... -
职责链模式Chain of Responsibility分离职责,动态组合
2014-03-12 17:25 341使多个对象都有机会处 ... -
装饰模式Decorator动态组合
2014-03-12 17:00 276动态地给一个对象添加 ... -
解释器模式Interpreters分离实现,解释执行
2014-03-12 16:27 294给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解 ... -
享元模式Flyweight分离与共享
2014-03-12 13:20 301运用共享技术有效地支持大量细粒度的对象。 安全实体:就是被系 ... -
备忘录模式Memento保存和回复内部状态
2014-03-11 17:47 432在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外 ... -
状态模式State根据状态来分离和选择行为
2014-03-11 17:20 398允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改 ... -
策略模式Strategy分离算法,选择实现
2014-03-11 15:26 416迪米特法则:LoD,最少知识原则。 如果两个类不必彼此直接通信 ... -
模板方法模式Templete Method 固定算法骨架
2014-03-11 11:15 537定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法 ... -
组合模式Composite统一叶子对象和组合对象
2014-03-07 18:18 306将对象组合成树型结构以表示“部分-整体”的层次结构。组合模式使 ... -
迭代器模式Iterator 控制访问聚合对象中的元素
2014-03-07 17:57 410提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该 ... -
命令模式Command 封装请求
2014-03-07 16:26 379将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数 ... -
观察者模式Observer订阅模式-触发联动
2014-03-07 11:19 382定义对象间的一种一对 ... -
中介者模式Mediator 封装交互
2014-03-06 00:19 370用一个中介对象来封装 ... -
原型模式Prototype 克隆生成对象
2014-03-06 00:19 566用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 ... -
生成器模式Builder 分离整体构建算法和部件构造
2014-03-06 00:19 307将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建 ... -
抽象工厂模式 Abstract Factory 选择产品簇的实现
2014-03-06 00:20 417工厂方法模式或简单工 ... -
工厂方法模式Factory Method延迟到子类来选择实现
2014-03-05 18:12 950定义一个用于创建对象 ... -
单例模式Singleton某个类只需要一个类实例
2014-03-05 16:46 426保证一个类只有一个实例,并提供一个访问它的全局访问点。 懒汉 ...
相关推荐
代理模式是其中一种行为设计模式,它的核心思想是为一个对象提供一个替身或者代理,以控制对该对象的访问。通过代理,可以在不修改原有对象的情况下,增加额外的功能或控制访问权限。 ### 1. 代理模式的角色 - **...
代理模式的核心思想是为一个对象提供一个替身,以便增加新的功能或者控制对原对象的访问。这种模式经常用于在不修改原有对象的情况下,扩展其功能,同时还能保持客户端代码的透明性。 代理模式主要有三种类型:虚拟...
在C++中,代理模式可以用来为其他对象提供一种代理以控制对这个对象的访问,或者增加额外的功能。代理模式的核心思想是通过代理类来代替实际的对象,使得客户端可以通过代理类与真实对象进行交互,而无需直接操作...
代理模式允许我们为一个对象创建一个代理,这个代理对象在客户端和目标对象之间起到中介的作用,可以增强或控制对目标对象的访问。代理模式的主要优点是它可以提供额外的功能,如缓存、日志、权限控制等,同时不会...
代理模式是一种设计模式,属于结构型模式之一,其主要目的是为其他对象提供一个代理,以控制对该对象的访问。在实际应用中,代理模式能够帮助我们实现如下的功能: 1. 远程代理:代理对象可以代表一个位于远程系统...
代理模式是一种结构型设计模式,它允许程序员为某对象创建一个代理对象来控制对该对象的访问。简单来说,就是在不修改原始类的基础上,通过引入代理对象来扩展类的行为或者控制对原始类的访问。这种模式在软件工程中...
代理模式(Proxy Pattern)是一种结构型设计模式,用于为其他对象提供一种代理以控制对这个对象的访问。代理模式通常用于保护、延迟加载、记录请求等场景,可以在不改变原有对象的情况下为其增加新的功能。 代理...
代理模式是一种设计模式,其核心思想是在原对象的基础上创建一个代理对象,代理对象在客户端和目标对象之间起到中介作用,提供额外的功能或控制对目标对象的访问。代理模式可以用来延迟加载、安全控制、监控行为等。...
在“为别人做嫁衣”的比喻中,这里的“别人”即目标对象,而“嫁衣”则代表了代理对象,它为目标对象提供了额外的功能或控制,同时保持了与目标对象相同的接口,使得客户端可以透明地使用代理对象,而不必知道底层...
代理模式是设计模式的一种,它的主要目的是在不改变原有对象的基础上,为一个对象提供额外的功能或者控制对这个对象的访问。在Android开发中,代理模式的应用尤为常见,尤其在处理复杂的业务逻辑、网络请求、界面...
代理模式是一种常用的结构型设计模式,它通过为另一个对象提供一个代理,来控制对该对象的访问。这种模式在软件工程中非常有用,尤其是在需要对对象的创建或操作进行额外控制的情况下。 #### 动机(Motivation) ...
代理模式的主要目的是为一个对象提供一个替身或者占位符,以便控制对这个对象的访问。这种设计模式允许我们通过代理类在不修改原有对象的基础上增加新的功能或控制行为。 在Java中,Proxy模式主要依赖于Java的动态...
代理模式是一种设计模式,它在软件工程中扮演着重要的角色,允许我们为其他对象提供一个替代接口,以控制对原对象的访问。这种模式的主要目的是为了增加灵活性、安全性或者为对象提供额外的功能,同时保持客户端代码...
代理模式是一种设计模式,它允许我们在不修改原有对象的情况下,为对象添加额外的功能或控制访问。在Java中,代理模式有静态代理和动态代理两种主要实现方式,它们都是为了在客户端与目标对象之间插入一个代理对象,...
Proxy模式是一种设计模式,它允许我们为一个对象创建一个代理对象,这个代理对象在客户端和目标对象之间起到中介的作用。这种模式在软件工程中广泛应用,主要用于控制对真实对象的访问,提供额外的功能,如日志、...
代理模式是一种设计模式,它允许我们为一个对象创建一个代理对象,这个代理对象在客户端和目标对象之间起到中介的作用,可以实现额外的功能,比如监控、权限控制、事务管理等,而客户端无需关心这些细节。...
代理模式是一种设计模式,其定义是为其他对象提供一种代理以控制对这个对象的访问。 代理模式的核心在于提供一个代理来控制和限制对另一个对象的直接访问。这种模式通常用于以下几种情况: 远程代理:当对象位于...
Proxy模式是设计模式中的一种,它提供了一种对对象访问的控制手段,使得在不修改原有对象的基础上,可以通过代理对象来扩展或增强原有对象的功能。在Java编程中,Proxy模式的应用非常广泛,尤其是在处理远程调用、...
在这些模式中,代理模式(Proxy Pattern)是一种常用的结构型设计模式,它允许我们为一个对象创建一个代理,该代理对象在客户端和目标对象之间起到中介的作用,可以增加额外的功能或控制访问。 代理模式分为两种...