java动态代理
1、首先要明白静态代理的作用
1、我们有一个字体提供类,有多种实现
现在我们希望给他加上一个缓存功能,我们可以用静态代理来完成,
当然,我们直接修改FontProviderFromDisk类也可以实现目的,但是我们还有FontProviderFromNet, FontProviderFromSystem等多种实现类,一一修改太过繁琐且易出错。况且将来还可能添加日志,权限检查,异常处理等功能显然用代理类更好一点。
然而为什么要用动态代理?
考虑以下各种情况,有多个提供类,每个类都有getXxx(String name)方法,每个类都要加入缓存功能,使用静态代理虽然也能实现,但是也是略显繁琐,需要手动一一创建代理类。
使用动态代理怎么完成呢?
转载于:https://my.oschina.net/hcy8888/blog/1647160