Μεθοδολογία ανάπτυξης εφαρμογών που στηρίζεται σε αυτόνομες προγραμματιστικές οντότητες με δική τους ταυτότητα και συμπεριφορά
Αντικείμενα
Οι οντότητες στις οποίες αντιστοιχούν φυσικές οντότητες ή έννοιες του φυσικού μας κόσμου, και δομούνται με βάση δεδομένα (ιδιότητες) που προσδιορίζουν την υπόστασή τους και ενέργειες (κανόνες συμπεριφοράς) που εφαρμόζονται πάνω στα δεδομένα
Ιδιότητες
Τα χαρακτηριστικά ενός αντικειμένου
Μέθοδοι
Οι ενέργειες που καθορίζουν τη συμπεριφορά του αντικειμένου
Επίλυση προβλήματος στην αντικειμενοστραφή προσέγγιση
1. Αναγνώριση και καταγραφή των αντικειμένων που συμμετέχουν
2. Καταγραφή των ιδιοτήτων κάθε αντικειμένου
3. Καταγραφή των υπηρεσιών/ενεργειών (μεθόδων) που προσφέρει κάθε αντικείμενο
Ονοματοδοσία μεθόδων
Παρουσιάζονται με βάση την ονοματοδοσία των υποπρογραμμάτων, ώστε να διαφοροποιείται ο ρόλος τους ως λειτουργικών στοιχείων των αντικειμένων
Ονοματοδοσία ιδιοτήτων
Αναπαριστούν τα δεδομένα που προσδιορίζουν την υπόστασή τους
Διαγραμματική αναπαράσταση αντικειμένων
1. Χρησιμοποιούνται παραλληλόγραμμα για τα αντικείμενα, τις ιδιότητες και τις μεθόδους τους
2. Γραμμές σύνδεσης για την περιγραφή της συνεργασίας μεταξύ τους
Δομή αντικειμενοστραφούς προγράμματος
Δίκτυο συνεργαζόμενων οντοτήτων (αντικείμενα)
Κάθε αντικείμενο έχει συγκεκριμένο ρόλο και παρέχει υπηρεσία ή εκτελεί ενέργεια (μέθοδο) που χρησιμοποιείται από άλλα αντικείμενα
Ενθυλάκωση
Η δυνατότητα ενός αντικειμένου να συνδυάζει εσωτερικά τα δεδομένα και τις μεθόδους του
Διαγραμματική αναπαράσταση
Αποτύπωση των αντικειμένων, των ιδιοτήτων και των μεθόδων τους, καθώς και της μεταξύ τους συνεργασίας
Αντικειμενοστραφές πρόγραμμα
Δίκτυο συνεργαζόμενων οντοτήτων που είναι τα αντικείμενα
Ενθυλάκωση
Η δυνατότητα ενός αντικειμένου να συνδυάζει εσωτερικά τα δεδομένα και τις μεθόδους χειρισμού του
Κλάση
Ο γενικός τύπος ενός αντικειμένου που καθορίζει τις αρχικές ιδιότητες και τη συμπεριφορά κάθε αντικειμένου που προέρχεται από αυτή
Διαγραμματική αναπαράσταση κλάσεων
1. Εντοπισμός ιδιοτήτων
2. Εντοπισμός μεθόδων
3. Εντοπισμός είδους συνεργασίας μεταξύ τους
Τοποθέτηση μεθόδων στις κλάσεις
Αν απαιτείται ενέργεια και από τις δύο κλάσεις, τότε υπάρχουν αντίστοιχες μέθοδοι και στις δύο
Αν δεν απαιτείται ενέργεια και από τις δύο, τότε η μέθοδος ορίζεται στην κλάση που ολοκληρώνει την ενέργεια
Ιδιότητες κλάσης
Ορίζουν μοναδικά τα αντικείμενα και χρησιμοποιούνται από τις μεθόδους για την υλοποίηση των σχέσεων μεταξύ των κλάσεων
Κληρονομικότητα
Η δυνατότητα δημιουργίας ιεραρχιών αντικειμένων
Σχέση κληρονομικότητας
Η κλάση απόγονος κληρονομεί και μπορεί να χρησιμοποιήσει όλα τα δεδομένα (ιδιότητες) και τις μεθόδους που περιέχει η κλάση πρόγονος
Έγκυρη υποκλάση
Μια κλάση Α μπορεί να είναι έγκυρη υποκλάση της Β αν έχει νόημα να πούμε «ένα Α είναι ένα (is_a) B»
Πολυμορφισμός
Ιδιότητα του αντικειμενοστραφούς προγραμματισμού
Κλάση απόγονος (υποκλάση)
Κληρονομεί και μπορεί να χρησιμοποιήσει όλα τα δεδομένα (ιδιότητες) και τις μεθόδους που περιέχει η κλάση πρόγονος (υπερκλάση)
Διαγραμματική αναπαράσταση κληρονομικότητας
Γίνεται με τη βοήθεια του ειδικού συμβόλου γενίκευσης
Πολυμορφισμός
Ιδιότητα του αντικειμενοστραφούς προγραμματισμού με την οποία μια λειτουργία μπορεί να υλοποιείται με πολλούς διαφορετικούς τρόπους
Πολυμορφισμός
Επιτρέπει να επαναπροσδιορίσουμε τον τρόπο με τον οποίο λειτουργούν κάποια πράγματα, είτε αλλάζοντας τον τρόπο λειτουργίας τους είτε αλλάζοντας τα εργαλεία τα οποία χρησιμοποιούνται για την επίτευξη του στόχου
Πολυμορφικές μέθοδοι
Αντικείμενα μπορούν να υποστηρίζουν συμπεριφορές (μεθόδους) με κοινό όνομα και τον ίδιο βασικό σκοπό αλλά με διαφορετική λειτουργική υλοποίηση
Επιλογή πολυμορφικής μεθόδου
Το πρόγραμμα αποφασίζει ποια από τις διαφορετικές μεθόδους με την ίδια ονομασία θα ενεργοποιηθεί, με βάση την κλάση του αντικειμένου στην οποία απευθύνεται η εφαρμογή της λειτουργίας
Πρωτεύοντα δομικά στοιχεία αντικειμενοστραφούς σχεδίασης
Δεδομένα, από τα οποία δημιουργούνται με κατάλληλη μορφοποίηση τα αντικείμενα (objects)
Πλεονεκτήματα αντικειμενοστραφούς σχεδίασης
Προγράμματα είναι περισσότερο ευέλικτα και επαναχρησιμοποιήσιμα
Ο αντικειμενοστραφής προγραμματισμός εκτός από τον τρόπο που χειρίζεται τα δεδομένα, συνεχίζει να χρησιμοποιεί την ιεραρχική σχεδίαση, τον τμηματικό προγραμματισμό και να ακολουθεί τις αρχές του δομημένου προγραμματισμού