Senior
Pasiūlykite teisingą paveldėjimo modelį Button ir Input klasėms vietoj dabartinio, kur Input išplečia Button.
sobes.tech AI
Atsakymas iš AI
Mygtuko išvestinė Input nėra logiška, nes Input ir Mygtukas yra skirtingi elementai su skirtinga semantika ir elgesiu.
Tinkamiausia būtų apibrėžti bendrą bazinį klasę, pvz., UIControl arba FormElement, kuri turėtų bendras savybes ir metodus visiems formos elementams. Tada Button ir Input paveldės iš jos kaip atskiri klasės.
TypeScript pavyzdys:
class UIControl {
constructor(public id: string) {}
render() {
// bendras render metodas
}
}
class Button extends UIControl {
click() {
// paspaudimo logika
}
}
class Input extends UIControl {
value: string = '';
setValue(val: string) {
this.value = val;
}
}
Šis požiūris atspindi tikrąją hierarchiją ir padeda išvengti neteisingų ryšių tarp klasių.