Senior
Navrhnite správny model dedičnosti pre triedy Button a Input namiesto súčasného, kde Input rozširuje Button.
sobes.tech AI
Odpoveď od AI
Dedičstvo Input od Button nie je logické, pretože Input a Button sú rôzne prvky s rôznou sémantikou a správaním.
Je vhodnejšie definovať spoločnú základnú triedu, napríklad UIControl alebo FormElement, ktorá obsahuje spoločné vlastnosti a metódy pre všetky prvky formulára. Následne od nej dedí Button a Input ako samostatné triedy.
Príklad v TypeScript:
class UIControl {
constructor(public id: string) {}
render() {
// spoločná metóda renderovania
}
}
class Button extends UIControl {
click() {
// logika kliknutia
}
}
class Input extends UIControl {
value: string = '';
setValue(val: string) {
this.value = val;
}
}
Tento prístup odráža skutočnú hierarchiu a zabraňuje nesprávnym väzbám medzi triedami.