设计模式之代理模式
2016-09-09 14:45
183 查看
代理模式
代理模式中,proxy对象作为其他对象的一个方便的替代或占位符。它的使用可以有多种形式,例如它可以在局部空间中代表一个远程地址空间的对象,也可以表示一个要求被加载的较大的对象,还可以用来保护对敏感对象的访问。代理模式还提供了对对象的一些特有性质的一定程度上的间接访问,从而它可以限制、增强或修改这些性质。定义
为其他对象提供一种代理以控制对这个对象的访问。
使用场景
远程代理:为一个对象在不同的地址空间提供局部代表。
虚代理:根据需要创建开销很大的对象。
保护代理:控制对原始对象的访问。
智能指引:取代了简单的指针,它访问对象时执行一些附加操作。
结构
实现
public interface Subject { void request(); } public class RealSubject implements Subject { public void request() { System.out.println("this is real subject"); } } public class Proxy implements Subject { private Subject subject; public Proxy(Subject sub){ subject = sub; } public void request() { System.out.println("before proxy"); subject.request(); System.out.println("after proxy"); } } public class Client { public static void main(String[] args) { Subject realsubject = new RealSubject(); Subject proxy = new Proxy(realsubject); proxy.request(); } }
运行结果:
before proxy
this is real subject
after proxy
代理模式在客户端访问对象之间加上一层控制,可以达到隐藏对象的效果,也可以进行额外的一些处理,它在实际生产中用途很广泛,因此还是有必要学习代理模式。
相关文章推荐
- 设计模式----Proxy(代理)模式
- 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)
- 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)
- 设计模式 --- 代理模式(Proxy) 精选经验合集
- 深入浅出基于Java的代理设计模式
- 设计模式之Proxy(代理)
- 设计模式与泡mm的关系之Proxy代理模式及代理模式的再思考
- 设计模式(6)-代理模式(Proxy)
- Java设计模式:Proxy(代理)
- 设计模式之Proxy(代理)
- 深入浅出基于Java的代理设计模式
- 设计模式——代理模式
- 设计模式之代理模式(Proxy)
- C#中利用代理实现观察者设计模式
- 设计模式之Proxy(代理)
- 设计模式之Proxy(代理)
- 设计模式之Proxy(代理)
- 设计模式之Proxy(代理)
- 设计模式之Proxy(代理)
- 设计模式(8)-代理模式(Proxy)