23种设计模式之代理模式(动态代理)
一:什么是动态代理:
利用反射机制在运行时创建代理类。接口、被代理类不变。
二:动态代理和静态代理的不同:
1、静态代理的代理类是程序员事先写好的
2、动态代理的代理类是在程序运行时动态生成的
三:动态代理分为两大类:
1、基于接口的动态代理
2、基于类的动态代理
四:动态代理的三种实现方式:
1、基于接口—>JDK动态代理 (JAVA原生的)(我们在这里使用)
2、基于类—>cglib (自己查阅资料做了解)
3、java字节码实现—> javassist (查资料了解)
五:在使用动态代理之前,首先了解两大类
1、Proxy (代理)
2、InvocationHandler (调用处理程序)
六:动态代理代码展示 (房东出租房子案例)
1、创建一个抽象角色
1 //租房的接口 (抽象角色) 2 3 public interface Rent { 4 5 //出租的方法 6 void rent(); 7 8 }