Назад к вопросам
Senior
2
Предложите правильную модель наследования для классов Button и Input вместо текущей, где Input extends Button.
Компании, где спрашивали
Bitrix
Ответ от нейросети
sobes.tech AI
Наследование Input от Button не является логичным, так как Input и Button — это разные элементы с разной семантикой и поведением.
Правильнее выделить общий базовый класс, например, UIControl или FormElement, который содержит общие свойства и методы для всех элементов формы. Затем от него наследуются Button и Input как отдельные классы.
Пример на TypeScript:
class UIControl {
constructor(public id: string) {}
render() {
// общий метод рендеринга
}
}
class Button extends UIControl {
click() {
// логика клика
}
}
class Input extends UIControl {
value: string = '';
setValue(val: string) {
this.value = val;
}
}
Такой подход отражает реальную иерархию и позволяет избежать неправильных связей между классами.