В большинстве случаев я обнаружил использование полиморфизма вместо оператора Switch. Я знаю, что лучше использовать полиморфизм, если в случае коммутатора все случаи разные.
что произойдет, если несколько случаев имеют одинаковый код! какой подход хорош? полиморфизм или случай переключателя.
например:
QList<QString> ret;
switch (x)
{
case A1:
case A2: ret = QList<QString>() <<"A" <<"B" <<"C" ;
break;
case A3:
case A4: ret = QList<QString>() <<"E" <<"F" <<"G" << "H" <<"T" ;
break;
case A5:
case A6:
case A7: ret = QList<QString>() <<"H" <<"F" <<"K" << "L" <<"T" ;
break;
default: ret = QList<QString>();
break;
}
Если я использую полиморфизм.
1) Если я создаю отдельный класс для случая A1 - A7, тогда мне может потребоваться создать отдельную копию QList () во всем производном классе (A1 - A7). Я думаю, что он будет использовать больше памяти.
Я поставил только пример кода, мой код отличается.
пожалуйста, кто-нибудь предлагает мне, какой подход хорош для такой ситуации?
Спасибо.