Senior
Navrhněte správný model dědičnosti pro třídy Button a Input namísto současného, kde Input rozšiřuje Button.
sobes.tech AI
Odpověď od AI
Dědičnost Input od Button není logická, protože Input a Button jsou různé prvky s různou sémantikou a chováním.
Je vhodnější definovat společnou základní třídu, například UIControl nebo FormElement, která obsahuje společné vlastnosti a metody pro všechny prvky formuláře. Poté od ní dědí Button a Input jako samostatné třídy.
Příklad v TypeScript:
class UIControl {
constructor(public id: string) {}
render() {
// společná metoda renderování
}
}
class Button extends UIControl {
click() {
// logika kliknutí
}
}
class Input extends UIControl {
value: string = '';
setValue(val: string) {
this.value = val;
}
}
Tento přístup odráží skutečnou hierarchii a zabraňuje nesprávným vazbám mezi třídami.