目录
一、什么是代理模式?
代理模式是指,为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,
一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户和目标对象之间起到中介的作用。换句话说,使用代理对象,是为了在不修改目标对象的基础上,增强主业务逻辑。客户类真正的想要访问的对象是目标对象,但客户类真正可以访问的对象是代理对象。
客户类对目标对象的访问是通过访问代理对象来实现的。当然,代理类与目标类要实现同一个接口。
例如:有A、B、C三个类,A原来可以调用C类的方法,现在因为某种原因C类不允许A类调用其方法,但B类可以调用C类的方法。A类通过B类调用C类的方法。这里B是C的代理。A通过代理B访问C。————>目标对象不可访问,通过代理对象增强功能访问。
原来的访问关系:
通过代理的访问关系:
二、代理模式的作用
(1)控制目标对象的访问
(2)增强功能
房东 ===>目标对象
房屋中介 ===>代理对象
租房客户 ===>访问对象
三、代理模式的分类
(1)静态代理——>静态代理要求目标对象和代理对象实现同一个业务接口。代理对象中的核心功能是由目标对象来完成,代理对象负责增强功能。
(2)动态代理——>JDK动态代理 + CGLib动态代理
四、代理的实现方式
(1)静态代理实现——>静态代理要求目标对象和代理对象实现同一个业务接口。代理对象中的核心功能是由目标对象来完成,代理对象负责增强功能。
(2)动态代理实现——>动态代理的实现又分为JDK动态代理和CGLib动态代理
五、总结
仅自己学习记录,如有错误,敬请谅解~,谢谢~~~