Java的dynamic proxy(动态代理)的使用学习(三)

这篇的主题是用一个proxy代理多个classes。主要要做的是一个新的InvocationHandler叫做MulticlassProxyHandler

可以看到这个handler的不同之处在于多包含了一个Bar的接口和BarImpl的实现。

然后这个handler里面有一个叫做delegates的map,它负责保存foobar两个实际的objects。

然后看一下invoke()方法当中的代码:

可以看到这个invoke()方法会根据实际的传进来的method对应的class,来呼叫对应的delegates。

最后看一下main()方法的实现:

可以看到我们用这个proxy同时代理了foobar两个delegates。运行上面的代码得到结果如下:

以上就是用proxy来代理多个delegates的方法。

这篇文章的代码放在了这里:

有兴趣可以下载下来看看。

Powered by Jekyll and Theme by solid