Java中为什么会存在静态代理?
我感觉动态代理完全够用了。静态代理需要实体类与代理类实现同一个接口,并重写所有的方法。工作量也不小,为啥不直接在原有类修改呢?如果是为了将业务逻辑与通用的日志等功能区分开的话,动态代理不就足够了吗?是因为老版本是这样解决的,就这样迭代下来了,还是说有性能上的一些考虑呢?求解惑。
我感觉动态代理完全够用了。静态代理需要实体类与代理类实现同一个接口,并重写所有的方法。工作量也不小,为啥不直接在原有类修改呢?如果是为了将业务逻辑与通用的日志等功能区分开的话,动态代理不就足够了吗?是因为老版本是这样解决的,就这样迭代下来了,还是说有性能上的一些考虑呢?求解惑。
我觉得,首先,代理模式是一种设计模式,它的实现方式分为动态代理和静态代理。这两种实现方式并不冲突。静态代理实现简单,少量类需要代理的情况下适合使用(主要是用在自己不能修改源码的情况下)