一、什么是代理
通常我们说的代理,在生活中就像中介、经纪人的角色。
目标对象/被代理对象 —— 房主:真正的租房的方法
代理对象 ——- 黑中介:有租房子的方法(调用房主的租房的方法)
执行代理对象方法的对象 —- 租房的人
流程:我们要租房—–>中介(租房的方法)——>房主(租房的方法)
抽象:调用对象—–>代理对象——>目标对象
二、静态代理
先看看比较常见的静态代理,也就是装饰设计模式:
三、动态代理
1、JDK提供的,通过实现InvocationHandler接口。JDK 给我们提供的动态代理只能代理接口,而不能代理没有接口的类。
2、CGLib动态代理:可以代理没有接口的类
https://github.com/zhangke3016/MethodInterceptProxy