2017-02-11 3 views
0

В моем проекте есть несколько классов, каждый класс имеет метод «public void build(){...}», но каждый метод отличается. Мне нужно что-то вроде:Ссылка на разные классы с одной переменной

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

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

    ... 

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

    class.build(); 

    ... 

каждый класс имеет очень длинный код, поэтому я достаточно, чтобы отделить каждый класс, я буду реализовывать некоторые классы в другом приложении тоже.

Итак, существует способ ссылки на классы в уникальной переменной?

ответ

1

Сделать все эти классы реализованы с помощью интерфейса Buildable, в котором указан метод build().

Тогда вы можете иметь переменную

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

... 
Смежные вопросы