Senior
Προτείνετε ένα σωστό μοντέλο κληρονομιάς για τις κλάσεις Button και Input αντί του τρέχοντος, όπου το Input επεκτείνει το Button.
sobes.tech AI
Απάντηση από AI
Η κληρονομικότητα Input από Button δεν είναι λογική, καθώς το Input και το Button είναι διαφορετικά στοιχεία με διαφορετική σημασιολογία και συμπεριφορά.
Είναι πιο σωστό να ορίσουμε μια κοινή βασική κλάση, π.χ. UIControl ή FormElement, που περιέχει κοινές ιδιότητες και μεθόδους για όλα τα στοιχεία της φόρμας. Στη συνέχεια, το Button και το Input κληρονομούν από αυτήν ως ξεχωριστές κλάσεις.
Παράδειγμα σε TypeScript:
class UIControl {
constructor(public id: string) {}
render() {
// κοινή μέθοδος απόδοσης
}
}
class Button extends UIControl {
click() {
// λογική κλικ
}
}
class Input extends UIControl {
value: string = '';
setValue(val: string) {
this.value = val;
}
}
Αυτή η προσέγγιση αντικατοπτρίζει την πραγματική ιεραρχία και αποφεύγει λανθασμένους δεσμούς μεταξύ των κλάσεων.