动态代理

动态代理

23中设计模式之一。代理模式的定义:为其他对象提供一种代理以控制对这个对象访问。在某种情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。


 

实例:

角色分析:

  抽象角色:一般会使用代理接口或者抽象类来解决

  真实对象:被代理的角色

  代理角色:代理真实对象,做一些附属的操作

  客户:访问代理的对象的人

  代理模式的好处:可以使用角色的操作的纯粹,不用去关注一些公共业务,交给代理角色,实现业务分工,公共业务发展的时候,方便集中,管理

静态代理实现:

 

缺点:每一次出现一个真实对象都需要一个代理对象去代理实现,降低了开发的效率。

为了弥补这一点,从而有了动态代理模式(java反射模式)

动态代理:

 1、基于接口实现的动态代理(jdk反射机制):jdk的动态代理

 2、基于类的动态代理:Cglib,java字节码

Proxy:生成代理类

InvocatioHardle:处理程序的实现的接口,处理代理实例,并返回结果

method:目标类方法

method.invoke:实现方法

args:传入的参数

 

InvocatioHardle接口实现类:

 

静态代理(一个需要代理真实对象对应一个代理对象,降低耦合)

动态代理(一个代理对象可以接收需要代理无数真实对象,降低耦合)

posted @   张栈  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示