首页 > 代码库 > 设计模式之代理模式

设计模式之代理模式

先抓一张网上的类图:

技术分享

代理模式:就是使用一个代理类,代替了真正的我们要使用的类。

从图中可以看出 代理类proxy, 真正要使用的的类RealSubject. 它们都是Subject的子类

使用了代理类的主要目的:

一. 为了解耦。client使用的是代理类,而不是RealSubject.

二. 通过代理类,我们对realsubject的业务可以进行封装和扩充,增加额外的业务处理,如,请求过滤,增加日志,权限等。我觉得这才是代理的核心作用

 

代理模块的实现,有静态代理和动态代理两种。

静态代理:如类图所示:一个真实对象,需要创建一个对应的代理对象,这样无疑增加了类的数量,增加了复杂度。

动态代理:通过反射等技术手段,动态增加代理类。

 

设计模式之代理模式