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