0%

java-faq

1. 如何在不改变代码的情况下, 改变类中方法的行为?

  1. 组合, 继承, 模板方法

如果开发时就能知道有这样的需求, 就可以通过这些方法实现可扩展的类

  1. 动态代理

通过 AOP 技术, 在运行期间动态代理对象

  1. ClassLoader
  • 利用 ClassLoader 加载顺序的特性, 让别的实现类在原来的类加载前加载
  • 加载时, 让他指向别的实现类
  1. Instrumentation

JTI 的 Instrumentation, 通过独立于程序的 agent, 修改和替换类的实现