Предположим, у меня есть много классов, которые все наследуются от одного и того же класса :
public class A
{
...
}
public class AA extends A
{
...
}
public class AB extends A
{
...
}
public class AC extends A
{
...
}
А затем в какой-то другой части кода я хотел бы вернуть один издочерний класс, в зависимости от значения, отправленного этой функции, следующим образом:
public A getChild(int value, Object foo)
{
switch(value)
{
case 0: {
return new AA(foo);
}
case 1: {
return new AB(foo);
}
case 2: {
return new AC(foo);
}
default: {
return new AA(foo);
}
}
}
В этом примере у меня есть только 3 типа детей.Но я мог бы, скажем, 30 из них, и оператор switch
стал бы огромным.
Есть ли способ сделать то же самое, используя что-то еще, чем оператор switch
, и это было бы более общим?Как указатели на функции в C?