Type Safety

 


H Java είναι σχεδιασμένη ώστε να υποχρεώνει το type safety. Αυτό σημαίνει ότι τα προγράμματα δεν μπορούν να έχουν πρόσβαση στην μνήμη με μη επιτρεπτούς τρόπους. Ας το εξηγήσουμε με ένα παράδειγμα για να γίνει πιο κατανοητό. Υποθέτουμε ότι έχουμε ένα αντικείμενο που ονομάζεται ημερολόγιο. Αυτό έχει ιδιότητες όπως Ημερομηνία, Ραντεβού, Ξυπνητήρι κ.λ.π. Η ιδιότητα Ξυπνητήρι προφανώς θα είναι λογικού τύπου και θα έχει δύο τιμές, αληθής και ψευδής. Ας υποθέσουμε ακόμη ότι υπάρχει και ένα άλλο αντικείμενο που για απλότητα το ονομάζουμε applet και όπου κατά διαβολική σύμπτωση η πρώτη του ιδιότητα είναι λογικού τύπου και αφορά την δυνατότητα πρόσβασης στα αρχεία.

Αν δεν υπήρχε ο μηχανισμός του type safety τότε ένα πρόγραμμα θα μπορούσε να εφαρμόσει την ιδιότητα Ξυπνητήρι στο αντικείμενο applet με αποτέλεσμα να έχει την δυνατότητα να μεταβάλει όχι προφανώς την ιδιότητα Ξυπνητήρι αλλά αυτήν που αφορά την πρόσβαση στα αρχεία και κάνοντας την αληθή κάποιος να έχει απεριόριστη πρόσβαση στο σύστημα αρχείων. Αντιλαμβανόμαστε όλοι την ζημιά που θα μπορούσε να γίνει.

Πώς αντιμετωπίζει αυτό το πρόβλημα η Java; Κάθε αντικείμενο της Java αποθηκεύεται σε μια συγκεκριμένη περιοχή της μνήμης. Η Java τοποθετεί μια ετικέτα σε κάθε αντικείμενο που δείχνει από ποια κλάση προέρχεται. Προκειμένου να θέσουμε την type safety ενώ εκτελείται το πρόγραμμα και πριν γίνει οποιοδήποτε ενέργεια ελέγχουμε αυτές τις ετικέτες. Αυτό ονομάζεται δυναμικός έλεγχος. Το μειονέκτημα του είναι ότι είναι σχετικά αργός. Γι’ αυτό και περισσότερο χρησιμοποιείται ο στατικός έλεγχος που ουσιαστικά γίνεται πριν εκτελεστεί το πρόγραμμα.

 

 
 
     

Αρχή σελίδας
 
(c) 2001 created by Magnet Internet Services