代理模式

subtitle

Posted by Kun on April 23, 2025

静态代理

在开发中提供一个service类,对ServiceImpl类进行操作

在不改变原有代码的情况下,在这之上再加一层代理,通过对代理的操作实现对业务的修改

优点

  1. 可以使真实角色的操作更加存粹,不用去关注一些公共的业务
  2. 公共也就交给代理角色,实现了业务的分工
  3. 公共业务发生拓展的时候,方便集中管理

缺点

  1. 一个真实的角色就会产生一个代理角色,代码量会翻倍,开发效率就会变低

动态代理

本质使用反射机制实现的

InvocationHandle

ProxyInvocationHandle

优点

  1. 可以使真实角色的操作更加存粹,不用去关注一些公共的业务
  2. 公共也就交给代理角色,实现了业务的分工
  3. 公共业务发生拓展的时候,方便集中管理
  4. 动态代理,代理的是一类业务

缺点

  1. 一个真实的角色就会产生一个代理角色,代码量会翻倍,开发效率就会变低