Назад к вопросам
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).