代理模式-接口应用
代理模式目的是为了扩展和增强类或接口。代理模式通常可分为静态代理模式和动态代理模式。
1.静态代理模式
主要实现的原理是:代理类和被代理类同时实现一个主题接口,代理类持有被代理类的引用。
(1)新建一个公共接口UserInterface
(2)定义真实执行类RealUser并实现公共接口UserInterface
(3)定义代理类UserProxy实现公共接口UserInterface,并持有被代理类的实例。
2.动态代理是指在程序运行是动态的创建代理类。动态代理的使用方式主要分为两种:一种是基于接口的代理,另一种是基于累的代理。基于接口的代理方式是指通过JDK自带的反射类来生成动态代理类;基于类的代理方式是指通过字节码来实现类代理,如CGLIB和Javassist等。
一、基于JDK反射生成代理类
(1)定义一个公共接口UserServiceInterface
(2)定义真是用户角色类UserServiceImpl并实现公共接口UserServiceInterface
(3)定义代理类UserServiceProxy,实现InvocationHandler接口,并重写invoke()方法
二、CGLIB实现动态代理
(1)直接实现MethodInterceptor拦截器接口,并重写intercept()方法;
(2)新建Enhancer类,并设置父类和拦截器类

浙公网安备 33010602011771号