Sobes.tech
Senior

Predložite ispravan model nasleđivanja za klase Button i Input umesto trenutnog, gde Input proširuje Button.

sobes.tech АИ

Одговор од АИ

Nasleđivanje Input od Button nije logično, jer Input i Button su različiti elementi sa različitom semantikom i ponašanjem.

Pravilnije je definisati zajedničku osnovnu klasu, na primer, UIControl ili FormElement, koja sadrži zajedničke osobine i metode za sve elemente forme. Zatim, Button i Input nasleđuju od nje kao odvojene klase.

Primer u TypeScript:

class UIControl {
  constructor(public id: string) {}
  render() {
    // zajednička metoda renderovanja
  }
}

class Button extends UIControl {
  click() {
    // logika klika
  }
}

class Input extends UIControl {
  value: string = '';
  setValue(val: string) {
    this.value = val;
  }
}

Ovaj pristup odražava stvarnu hijerarhiju i sprečava netačne veze između klasa.