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.