Senior
Proponi un modello di ereditarietà corretto per le classi Button e Input invece di quello attuale, dove Input estende Button.
sobes.tech AI
Risposta dell'AI
L'ereditarietà di Input da Button non è logica, poiché Input e Button sono elementi diversi con semantiche e comportamenti differenti.
È più corretto definire una classe base comune, ad esempio, UIControl o FormElement, che contiene proprietà e metodi comuni a tutti gli elementi del modulo. Successivamente, Button e Input ereditano da questa come classi separate.
Esempio in TypeScript:
class UIControl {
constructor(public id: string) {}
render() {
// metodo di rendering comune
}
}
class Button extends UIControl {
click() {
// logica del clic
}
}
class Input extends UIControl {
value: string = '';
setValue(val: string) {
this.value = val;
}
}
Questo approccio riflette la gerarchia reale e evita connessioni errate tra le classi.