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

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

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

sobes.tech AI

Телескопический конструктор — это паттерн проектирования в Java, когда класс имеет несколько конструкторов с разным количеством параметров, и каждый конструктор вызывает следующий конструктор с большим числом параметров, передавая значения по умолчанию для отсутствующих аргументов. Такой подход позволяет создавать объекты с разным набором параметров, но может привести к громоздкому и трудно читаемому коду при большом количестве параметров.

Пример:

public class NutritionFacts {
    private final int servingSize;  // обязательный
    private final int servings;     // обязательный
    private final int calories;     // необязательный
    private final int fat;          // необязательный

    public NutritionFacts(int servingSize, int servings) {
        this(servingSize, servings, 0);
    }

    public NutritionFacts(int servingSize, int servings, int calories) {
        this(servingSize, servings, calories, 0);
    }

    public NutritionFacts(int servingSize, int servings, int calories, int fat) {
        this.servingSize = servingSize;
        this.servings = servings;
        this.calories = calories;
        this.fat = fat;
    }
}

Этот подход удобен для небольшого числа параметров, но при увеличении их количества лучше использовать паттерн "Строитель" (Builder).