2017-02-11 2 views
0

Es gibt einige Klassen in meinem Projekt, jede Klasse hat eine Methode "public void build(){...}", aber jede Methode ist anders. Ich brauche so etwas wie:Referenz verschiedene Klassen mit einer Variablen

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

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

    ... 

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

    class.build(); 

    ... 

jede Klasse hat einen sehr langen Code, so dass ich ziemlich jede Klasse zu trennen, ich werde einige Klassen in einer anderen Anwendung implementieren.

Also gibt es eine Möglichkeit, Klassen in einer eindeutigen Variablen zu referenzieren?

Antwort

1

Machen Sie alle diese Klassen implementieren eine Schnittstelle namens Buildable, die die build() Methode auflistet.

Dann können Sie eine variable

Buildable thingImGoingToBuild; 

und legen Sie es auf ein beliebiges Objekt einer dieser Klassen. Sobald Sie das getan haben, werden Sie in der Lage sein

thingImGoingToBuild.build(); 
+0

Dank. ich werde es versuchen. –

0

Verwenden Array zu schreiben & dann Build-Methode auf jedem Array-Element nennen

... 
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(); 

... 
Verwandte Themen