Senior
Javasolj egy helyes öröklődési modellt a Button és Input osztályok számára a jelenlegi helyett, ahol az Input kiterjeszti a Button-t.
sobes.tech MI
Válasz az MI-től
A Buttonból származó Input öröklése nem logikus, mivel az Input és a Button különböző elemek, különböző szemantikai és viselkedési jellemzőkkel.
Sokkal helyesebb egy közös alap osztályt definiálni, például UIControl vagy FormElement, amely tartalmazza az összes űrlapelem közös tulajdonságait és metódusait. Ezután a Button és az Input ebből öröklődnek külön osztályként.
TypeScript példával:
class UIControl {
constructor(public id: string) {}
render() {
// közös render metódus
}
}
class Button extends UIControl {
click() {
// kattintási logika
}
}
class Input extends UIControl {
value: string = '';
setValue(val: string) {
this.value = val;
}
}
Ez a megközelítés tükrözi a valódi hierarchiát, és elkerüli a helytelen kapcsolódásokat a osztályok között.