Каков наилучший способ рефакторинга ветки if else - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть ветвление if-else, например

if(name.contains(substring)){
    if(name.contains(substring1)){
        return "this";
    }else if(name.contains(substring2)){
        return "that";
    }
    ...
}else if(){
     // if else ladder
}
....//else if ladder continues
else{
    return "them"
}

Каков наилучший способ реорганизовать это? Что является самым эффективным способом сделать логику подобной этой?

Ответы [ 2 ]

0 голосов
/ 08 ноября 2019

Избыточные операторы if/else или switch могут указывать на плохой дизайн.

В некоторых ситуациях может быть лучше использовать интерфейсы (полиморфизм), см., Например, Заменить условное на полиморфизм .

Конечно, не все if являются ненужными. Но хорошо бы избегать смешивания структур управления с выполнением работы в максимально возможной степени. В конце код должен быть легко читаемым.

0 голосов
/ 08 ноября 2019

Вы можете использовать оператор switch вместо этого, если лестница. Поскольку компилятор способен оптимизировать оператор switch, обычно считается, что он более эффективен.

...