java设计优化之代理模式
代理模式使用代理对象完成用户的请求,屏蔽用户对真实对象的访问。这就是使用代理模式达到延迟加载的目的。JDK动态代理强制要求代理类和真是主题实现统一接口,CGLIB和javassist动态代理没有这样的要求。在java中,动态代理的实现涉及到classloader的使用,以CGLIB为例,简要描述下动态类的加载过程。使用CGLIB生成动态代理,首先需要生成Enhancer类的实例,并制定用于处理代理业务的回调类。其他与该过程细节不同,但是生成逻辑相同。
代理模式使用代理对象完成用户的请求,屏蔽用户对真实对象的访问。这就是使用代理模式达到延迟加载的目的。JDK动态代理强制要求代理类和真是主题实现统一接口,CGLIB和javassist动态代理没有这样的要求。在java中,动态代理的实现涉及到classloader的使用,以CGLIB为例,简要描述下动态类的加载过程。使用CGLIB生成动态代理,首先需要生成Enhancer类的实例,并制定用于处理代理业务的回调类。其他与该过程细节不同,但是生成逻辑相同。