简介
23种java常用设计模式之一。代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
角色分析:
抽象角色:一般会使用代理接口或者抽象类来解决
真实对象:被代理的角色
代理角色:代理真实对象,做一些附属的操作
客户:访问代理的对象的人
代理模式的好处:可以使用角色的操作的纯粹,不用去关注一些公共业务,交给代理角色,实现业务分工,公共业务发展的时候,方便集中,管理
静态代理实现:
缺点:每一次出现一个真实对象都需要一个代理对象去代理实现,降低了开发的效率。
为了弥补这一点,从而有了动态代理模式(java反射模式)
动态代理模式:
1.基于接口的动态代理模式:JDK的动态代理
2,基于类的动态代理:Cglib,java字节码
Proxy:生成代理类
InvocatioHardle:处理程序的实现的接口,处理代理实例,并返回结果
Invoke:实现方法
静态代理(一个需要代理真实对象对应一个代理对象,降低耦合)
动态代理(一个代理对象可以接收需要代理无数真实对象,降低耦合)
完美!
本文素材出自
https://www.bilibili.com/video/av71110355?p=19
作者:狂神说java