如何将参数传递给java中不同模块的相同类之间的类?

时间:2016-12-01 11:58:07

标签: java inheritance interface abstract-class

我有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;
        }

    }

1 个答案:

答案 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;
        // ...
    }
}