3.1.3 通过反射增强工厂方法
普通工厂方法 是将在编译时构造类并返回的,当修改数据库访问 Facade 实现后,需要将整个应用重新编译,或者打补丁。
上节通过动态加载、反射构造实现工厂方法,避免重新编译应用,如果有新的 Facade 实现,只需如下两步就能将应用中的数据库访问代码 替换为其他实现:
- 将
Facade实现类编译后的.class文件放在应用的classpath中。 - 修改系统配置文件,将
db.class的值改为Facade实现类的 全限定名。
上述操作 无需重新编译,但要 重新启动 应用,以加载新的 Facade 实现类。