代理模式

代理模式

代理模式与升级版的代理模式(强制、虚拟)

有接口实现类实例作为入参的代理类构造函数
将代理类实例 赋给 接口实例
代理类实例执行实现类方法

其中的具体细节

接口:
声明一个接口与其相应的抽象方法

接口实现类:
实现接口,实现接口相应的抽象方法

代理类:
有一个接口类的私有实例
实现接口,有一个接收接口实现类的构造函数,将入参赋给私有实例
实现接口的相应方法,代理自己的内容,相应的实现方法里面通过私有实例调用对应的方法
完成代理

动态代理模式

具体细节

接口:
声明一个接口与其相应的抽象方法

接口实现类:
实现接口,实现接口相应的抽象方法

动态代理类:(可以不需要传入入参的构造函数)
实现InvocationHandler的动态代理类
拥有一个Object的私有实例
拥有传入Object实例的构造函数,将实例赋给Object私有实例
实现InvocationHandler接口的invoke方法
invoke方法会拥有代理对象、方法以及入参,可以在调用代理方法之前进行代理工作

动态代理调用

动态代理类的newProxyInstance方法生成实例。进行相应的调用

Blog

Dump

Project