我有一个工厂类,它创建某种类型的对象(比如,MyClass)。
工厂类属于特定包,我想在该包中的实现和更新版本之间动态切换,以进行测试。
例如,原始包是pack1,新版本是pack2,类名pack1.Factory和pack2.Factory. 或将通过属性文件中的简单参数指定pack1。pack2此外,该MyClass类型对于两个包都是通用的,并且只应使用普通的 vanilla Java(即,没有第三方库)。
我正在考虑使用Class.forName()加载pack1.Factory或 pack2.Factory(取决于指定的属性),然后通过反射调用所有工厂方法。
这是最好的方法吗?