动态代理
动态代理
23中设计模式之一。代理模式的定义:为其他对象提供一种代理以控制对这个对象访问。在某种情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
实例:
角色分析:
抽象角色:一般会使用代理接口或者抽象类来解决
真实对象:被代理的角色
代理角色:代理真实对象,做一些附属的操作
客户:访问代理的对象的人
代理模式的好处:可以使用角色的操作的纯粹,不用去关注一些公共业务,交给代理角色,实现业务分工,公共业务发展的时候,方便集中,管理
静态代理实现:
缺点:每一次出现一个真实对象都需要一个代理对象去代理实现,降低了开发的效率。
为了弥补这一点,从而有了动态代理模式(java反射模式)
动态代理:
1、基于接口实现的动态代理(jdk反射机制):jdk的动态代理
2、基于类的动态代理:Cglib,java字节码
Proxy:生成代理类
InvocatioHardle:处理程序的实现的接口,处理代理实例,并返回结果
method:目标类方法
method.invoke:实现方法
args:传入的参数
InvocatioHardle接口实现类:
静态代理(一个需要代理真实对象对应一个代理对象,降低耦合)
动态代理(一个代理对象可以接收需要代理无数真实对象,降低耦合)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本