代理模式:为一个对象提供一种代理,以控制对这个对象的访问。分为静态代理和动态代理。
比如我家张艺兴的经纪人就是他的“代理”。
适用场景和优缺点 |
适用场景
(1)当我们想要隐藏某个类时,可以为其提供代理类
(2)当一个类需要对不同的调用者提供不同的调用权限时,可以使用代理类来实现
(3)当我们要扩展某个类的某个功能时,可以使用代理模式,在代理类中进行简单扩展
(4)spring的aop就是使用了动态代理。
优点
(1)将代理对象与真实被调用的目标对象分离,降低了系统的耦合度
(2)保护目标对象
(3)增强目标对象
缺点
(1)会造成系统设计中类的数目增加
(2)在客户端和目标对象之间增加了代理对象,会造成请求的处理速度变慢
(3)增加系统的复杂度
实现 |
类图
代码实现
请您移步到这篇博客,此篇博客的优秀程度定不会让您失望:【java反射】简单说说静态代理和动态代理