我有5个模块,所有模块都包含相同的类,但所有类的内容在run方法中都有不同的代码。
mainpackage
| \ moduleA
| \ LoginClass
| + run(hashMapContext)
| \ LogOutClass
| + run(hashMapContext)
| \ GetInfoClass
| + run(hashMapContext)
|
| \ moduleB
| \ LoginClass
| + run(hashMapContext)
| \ LogOutClass
| + run(hashMapContext)
| \ GetInfoClass
| + run(hashMapContext)
我有一个字段(moduleType)
,我正在尝试这个
moduleType = moduleA
getInfo.run(hashMapContext)
如何开发此代码? enter image description here
感谢@Jhon D。
public static void main(String[] args) {
ICommon obj = newInstance("a");
obj.run("expect A");
}
public static ICommon newInstance(String type) {
switch (type) {
case "a":
return new ModuleALogin();
case "b":
return new ModuleBLogin();
default:
return null;
}
}
答案 0 :(得分:0)
使用包含方法的公共接口:run(hashMapContext)
。
好的,如果你想要例子。它可能类似于:
public void foo() {
// ...
CommonInterface obj = newInstance(module);
obj.run(hashMapContext);
// ...
}
public CommonInterface newInstance(module) {
switch (module) {
case A:
return ClassFromModuleA;
case B:
return ClassFromModuleB;
// ...
}
}