Sobes.tech
Назад к вопросам
Junior — Middle
60

Какими методами можно снизить количество условных операторов в коде и повысить его читаемость?

Компании, где спрашивали
DCloud

Ответ от нейросети

sobes.tech AI

Для снижения количества условных операторов (if/else, switch) и повышения читаемости кода в Java можно использовать следующие подходы:

  • Полиморфизм и наследование: вместо проверки типа объекта через условные операторы можно определить общий интерфейс или абстрактный класс и реализовать разные поведения в подклассах.

  • Использование Map для выбора действий: вместо цепочек if-else можно хранить соответствия ключей и функций в Map.

  • Стратегия (Strategy pattern): выделить разные алгоритмы в отдельные классы и выбирать нужный объект стратегии во время выполнения.

  • Использование enum с методами: если условие зависит от фиксированного набора значений, можно определить enum с переопределёнными методами.

  • Функциональные интерфейсы и лямбда-выражения (начиная с Java 8) позволяют упростить код и избавиться от громоздких условий.

Пример с использованием Map и лямбд:

import java.util.Map;
import java.util.function.Consumer;

public class CommandExecutor {
    private Map<String, Runnable> commands = Map.of(
        "start", () -> System.out.println("Starting"),
        "stop", () -> System.out.println("Stopping")
    );

    public void execute(String command) {
        commands.getOrDefault(command, () -> System.out.println("Unknown command")).run();
    }
}

Такой подход делает код более расширяемым и легче поддерживаемым.