有了静态代理为什么还要动态代理

接口代理

  • 动态代理主要用于接口代理,而静态代理只能为固定的具体类创建代理。
  • 通过动态代理,可以在运行时生成代理对象(无需关心代理类的创建)
  • 无需为每个类编写具体的代理类。

减少代码重复:

  • 使用静态代理时,需要为每个被代理类编写一个独立的代理类。
  • 动态代理通过使用通用的 InvocationHandler 接口,可以减少代码的重复性
  • 使代理的创建和管理更加灵活和便捷。

横切关注点的处理方式

  • 动态代理可以在运行时动态地植入额外的代码逻辑,形成对代理方法的拦截,方便统一地进行维护、处理。
  • 这可以使得我们能够通过代理轻松地为多个类添加相同的横切关注点,而不需要修改每个被代理类的代码。

类的装饰:

  • 动态代理可以用于在不改变原始类的前提下对类进行装饰。
  • 通过代理对象可以动态地在原始方法之前或之后执行额外的逻辑,
  • 实现对原始类的增强而不改变原始类的结构。

运行时的灵活性:

  • 动态代理在运行时动态生成代理类,可以根据不同的需求生成不同的代理对象,灵活性更高。
  • 在运行时根据实际情况选择要使用的代理类,而不用在编译时就确定代理类。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值