1.策略模式
2.模板方法
3.代理模式
cglib:
继承一个类时,生成该类的代理类采用cglib。
实现:实现接口:MethodInterceptor,重写intercept方法,该方法里面是在目标方法前后添加增加的代码执行。
createProxy()方法不是需要实现的任何方法,是创建代理对象的方法。
利用Enhance对象创建代理对象,:把你的类设置为父类,create方法执行完,就会生成(你这个类的子类)代理类,然后调用你目标方法时,通过callback()回调当前类,调用该类的intercept方法。intercept方法里面就是具体执行你的所有逻辑功能
jdk
实现一个类时,使用jdk动态代理
实现:实现InvoctionHandle接口,实现invoke方法。invoke方法里面进行目标方法前后需要执行代码的增加。通过method.invoke反射执行目标方法。
createProxy()创建代理对象的方法。利用Proxy.newInstance(类加载器,目标类实现的的接口,当前的invokehandle对象),生成一个和目标类实现相同接口的实现类。返回的是代理类。
当在使用的地方使用createProxy生成代理类,调用目标方法时,会进行到invoke方法,执行该方法里面的逻辑。
6.门面模式
4.工厂模式
5.装饰模式,也叫包装器模式,Wrap
6.门面模式