Sobes.tech
Senior

Предложете правилен модел на наследяване за класовете Button и Input вместо текущия, където Input наследява Button.

sobes.tech AI

Отговор от 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;
  }
}

Този подход отразява реалната йерархия и предотвратява неправилни връзки между класовете.