⊗jsOpBsGSA 18 of 60 menu

Πλεονεκτήματα των setters και getters στην ΑΟΠ στο JavaScript

Στο προηγούμενο μάθημα δημιουργήσαμε για κάθε ιδιότητα ένα getter και ένα setter. Μπορεί να προκύψει το ερώτημα, γιατί χρειάζονται τέτοιες πολυπλοκότητες, αφού ουσιαστικά το ίδιο αποτέλεσμα μπορεί να επιτευχθεί εάν κάνουμε τις ιδιότητες δημόσιες, και όχι ιδιωτικές.

Το θέμα είναι ότι οι getters και setters έχουν πλεονέκτημα: πριν από την πρόσβαση σε μια ιδιότητα μπορούν να εκτελεστούν ορισμένοι έλεγχοι. Για παράδειγμα, στην περίπτωσή μας, κατά την εγγραφή του ονόματος και του επωνύμου μπορούμε να ελέγξουμε ότι η νέα τιμή δεν είναι κενή συμβολοσειρά:

class User { #name; #surn; setName(name) { if (name.length > 0) { this.#name = name; } else { throw new Error('name is incorrect'); } } setSurn(surn) { if (surn.length > 0) { this.#surn = surn; } else { throw new Error('surn is incorrect'); } } getName() { return this.#name; } getSurn() { return this.#surn; } }

Ας ελέγξουμε πώς λειτουργεί αυτό. Πρώτα, ας δημιουργήσουμε ένα αντικείμενο της κλάσης:

let user = new User;

Τώρα ας προσπαθήσουμε να γράψουμε μια σωστή τιμή:

user.setName('john');

Και τώρα ας προσπαθήσουμε να γράψουμε μια μη σωστή:

user.setName(''); // σφάλμα

Στην κλάση Employee στον setter της ηλικίας κάντε έναν έλεγχο ότι η ηλικία πρέπει να είναι από 0 έως 120.

Στην κλάση Employee στον getter του μισθού κάντε έτσι ώστε κατά την ανάγνωση του μισθού στο τέλος της τιμής του να προστίθεται το σύμβολο του δολαρίου.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη