2016-12-01 11 views
0

私は5つのモジュールを持っていて、すべてのモジュールには同じクラスが含まれていますが、すべてのクラスのコンテンツにはrunメソッドとは異なるコードがあります。java内の同じクラスの異なるモジュール間でクラスにパラメータを渡す方法はありますか?

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) 

にしようとしていますか? 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

は、私が思うに、あなたが再設計を開始する必要があり、あなたはモジュールの間で共通であるすべてのクラスを持つjarファイルを作成する必要があります。モジュールのクラスパスに含めます –

+1

'getInfo.run()'このメソッドはどこから来ますか?そして、私は 'moduleType = moduleA'と' getInfo.run(hashMapContext) 'の関係を見ません。 さらに、モジュールの意味は? – davidxxx

答えて

0

使用する共通のインターフェイスへの答えのおかげです。

例が必要な場合は[OK]をクリックします。それはと同様にすることができる:

public void foo() { 
    // ... 
    CommonInterface obj = newInstance(module); 
    obj.run(hashMapContext); 
    // ... 
} 

public CommonInterface newInstance(module) { 
    switch (module) { 
     case A: 
      return ClassFromModuleA; 
     case B: 
      return ClassFromModuleB; 
     // ... 
    } 
} 
+0

私はそれを考えましたが、どのようにモジュールを修正するためにパラメータを渡すことができますか?コードサンプルはありますか? –

+0

ありがとう、私はそれを持っています。しかし私は練習しなければならない –

関連する問題