0.前言
参考文章:
代理模式的使用总结
对应项目名字:proxy
1.静态代理
1.1.概念
由程序员将代理相关代码静态地写好
也就是在编译时就已经将接口、被代理类、代理类等确定下来
1.2.举例
1) Person接口,必须实现上交班费方法
![image-20210703223650957](https://img-blog.csdnimg.cn/img_convert/d5adf6425a7288c26233191ceb4534a5.png)
2) 实现类:Studnet(学生),Monitor(班长)
![image-20210703223754062](https://img-blog.csdnimg.cn/img_convert/0b49b975fe9c7173800cb692ad94b238.png)
![image-20210703224125486](https://img-blog.csdnimg.cn/img_convert/7a66c6fb73ada79100bea0734f145822.png)
3) 客户端操作
![image-20210703224454757](https://img-blog.csdnimg.cn/img_convert/31d583d182e1e1827cbb99dab2947838.png)
2.动态代理
2.1.概念
代理类并不是被静态写好的,可以认为是写好了代理类的模板(就像底层函数)
在程序执行时动态生成相关的代码
Spring中AOP的底层原理就是jdk的动态代理