java动态代理
包装设计模式(装饰模式)
回顾BufferedInputStream(包装类),FileInputStream读取数据的时候是一个字节一个字节的读取,效率很低,确实实现了读取文件。 需要对 FileInputStream 进行包装, 提高读取效率,BufferedInputStream就是这样的包装类, 内置了缓冲区
BufferedInputStream称为包装类 FileInputStream称为被包装对象
1. 包装类要和被包装的对象实现同样的接口
2. 包装类要持有一个被包装对象
3. 包装类在实现接口的时候,对于不需要包装的方法调用被包装对象的方法来实现,对于需要包装的方法,我们自己实现
我们可以为某一个对象生成一个代理对象
代理对象要和被代理的对象实现同样的接口
代理对象的方法被调用时,我们可以做一些动作,再去调用真正被代理对象的方法
在代理对象中对用户的权限进行检查
所有的过滤器都可以用代理模式来解决