2017-02-11 8 views
0

私のプロジェクトにはいくつかのクラスがあり、各クラスにはメソッド "public void build(){...}"がありますが、それぞれのメソッドは異なります。各クラスは、非常に長いコードを持っているので、私はむしろ、それぞれのクラスを分離するために、私はあまりにも他のアプリケーションでいくつかのクラスを実装します1つの変数で異なるクラスを参照する

... 
    switch (choose){ 
    case 1: 
    class = new Class1(); 
    break; 

    case 2: 
    class = new Class2(); 
    break; 

    ... 

    case 20: 
    class = new Class20(); 
    break; 
    } 
    ... 

    class.build(); 

    ... 

:私のようなものを必要としています。

したがって、クラスを一意の変数で参照する方法はありますか?

答えて

1

build()メソッドをリストするBuildableというインターフェイスを実装するすべてのクラスにします。

その後、変数

Buildable thingImGoingToBuild; 

を持っており、これらのクラスのいずれかの任意のオブジェクトに設定することができます。あなたはそれをやった後は、あなたがして

thingImGoingToBuild.build(); 
+0

おかげでビルドメソッドを呼び出すことができるでしょう。私はそれを試してみます。 –

0

使用アレイ&を書き、各配列項目

... 
ClassName[] className = new ClassName[Count] 
switch(choose){ 
case N: 
className[N] = new ClassNameNewN(); 
break; 
case K: 
className[K] = new ClassNameNewK(); 
break; 
} 

//for(int i = 0; i < array.length; i++)//if you want to call all 
     ClassName[i].build(); 

... 
関連する問題