用什么设计模式可以实现类似spring 中AOP的功能,大神们指点下
可以用动态代理模式来实现
java
动态代理
Spring aop 采用的设计模式是代理模式 类似代理模式的有装饰模式 装饰模式只是在原基础上新增一些新的功能 而代理不但可以新增功能 还能对被代理的对象进行控制
在spring中aop的实现就是用的动态代理,首先要明白动态代理有两种,一种是jdk动态代理,生成的代理类会实现被代理类的接口,所以你的被代理类如果有实现接口才能被代理,或者被代理类本身就是接口,还一种是cglib动态代理,生成的代理类是会继承被代理类,jdk生成动态代理类快,因为只生成一个类,cglib生成多个文件,所以生成代理类慢,但是jdk调用时慢,因为时通过反射,cglib调用快,是通过fastclass机制,直接通过index定位到方法,这也是它生成了这么多文件的原因