1.什么是代理模式?
代理模式是GoF四人组提出的 23中设计模式之一。
若一个类T不能或不适合让另外一个类C直接访问,或者,类T在不修改自身源码的前提下,想增强业务逻辑功能,此时,就可以通过一个中间类P来完成这些需求。那么,这个中间类P就称为代理类,而类T则称为目标类。
换个角度思考,那就是说,客户类C若想与目标类T打交道,那么就需要通过代理类P来完成。即客户类只能与代理类P发生直接的联系。代理类P的对象可以代表目标类T与客户类打交道。
2.代理模式中的角色
目标类
代理类
客户类
3.代理模式的目的
1)为例保护和隐藏某一个类,可以使用代理模式
2)在不修改某个类的源码的前提下,为了增强某个类的功能,可以使用代理模式
4.代理模式的分类
根据代理类创建的时间的不同,或者说,根据代理关系确立的时机的不同,可以将代理模式分为两类:
1)静态代理
2)动态代理
动态代理又根据实现技术的不同,可以分为若干类,例如
1)JDK的动态代理
2)CGLIB动态代理
3)Javassist动态代理
......