反射--动态代理机制

一,本章目标

掌握动态代理的作用

掌握InvocationHandler接口和Porxy类的作用



二,具体内容

代理设置:一个操作的接口有两个子类,一个是其真实主题的实现类,另外一个是代理类,代理实现类要完成比真实主题类更多的内容,而且本身还需要处理一些与具体业务逻辑有关的程序代码。

反射--动态代理机制_第1张图片

以上的代码操作实际上是 称为静态代理,因为一个代理类智能为一个接口服务,那么如果现在有很多个接口的话,那么则肯定代理类就很多了。而且,所有的代理类操作除了调用的方法不一样之外,其他的操作都是一样,则此时肯定是重复代码。

为了解决这个问题,引入了动态代理机制。

反射--动态代理机制_第2张图片

反射--动态代理机制_第3张图片

可以将InvocatioHandler接口的子类想象成一个代理的最终操作类,替换掉ProxySubject

反射--动态代理机制_第4张图片

反射--动态代理机制_第5张图片

如果想要得到一个加载器对象,则肯定要使用Class类来完成。

反射--动态代理机制_第6张图片

总的代码修改如下:

反射--动态代理机制_第7张图片






三,总结


此时,使用动态代理就可以完成代理功能,而且可以代理全部的接口





你可能感兴趣的:(java)