代理模式
2018-09-30,本文 508 字,阅读全文约需 2 分钟
代理模式
代理模式与升级版的代理模式(强制、虚拟)
- 接口
- 接口实现类
- 实现接口的代理类
有接口实现类实例作为入参的代理类构造函数
将代理类实例 赋给 接口实例
代理类实例执行实现类方法
其中的具体细节
接口:
声明一个接口与其相应的抽象方法
接口实现类:
实现接口,实现接口相应的抽象方法
代理类:
有一个接口类的私有实例
实现接口,有一个接收接口实现类的构造函数,将入参赋给私有实例
实现接口的相应方法,代理自己的内容,相应的实现方法里面通过私有实例调用对应的方法
完成代理
动态代理模式
- 接口
- 接口实现类
- 实现InvocationHandler的动态代理类
具体细节
接口:
声明一个接口与其相应的抽象方法
接口实现类:
实现接口,实现接口相应的抽象方法
动态代理类:(可以不需要传入入参的构造函数)
实现InvocationHandler的动态代理类
拥有一个Object的私有实例
拥有传入Object实例的构造函数,将实例赋给Object私有实例
实现InvocationHandler接口的invoke方法
invoke方法会拥有代理对象、方法以及入参,可以在调用代理方法之前进行代理工作
动态代理调用
动态代理类的newProxyInstance方法生成实例。进行相应的调用