Senior
Zaproponuj poprawny model dziedziczenia dla klas Button i Input zamiast obecnego, w którym Input dziedziczy po Button.
sobes.tech AI
Odpowiedź od AI
Dziedziczenie Input od Button nie jest logiczne, ponieważ Input i Button to różne elementy o różnej semantyce i zachowaniu.
Lepszym rozwiązaniem jest zdefiniowanie wspólnej klasy bazowej, np. UIControl lub FormElement, która zawiera wspólne właściwości i metody dla wszystkich elementów formularza. Następnie Button i Input dziedziczą z niej jako oddzielne klasy.
Przykład w TypeScript:
class UIControl {
constructor(public id: string) {}
render() {
// wspólna metoda renderowania
}
}
class Button extends UIControl {
click() {
// logika kliknięcia
}
}
class Input extends UIControl {
value: string = '';
setValue(val: string) {
this.value = val;
}
}
Taki podejście odzwierciedla rzeczywistą hierarchię i pozwala uniknąć nieprawidłowych powiązań między klasami.