oop:introduction

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
oop:introduction [2015/02/18 12:07]
gthanos [Κληρονομικότητα]
oop:introduction [2015/02/18 12:20]
gthanos [Πλεονεκτήματα του Αντικ/στραφούς Προγραμματισμού]
Line 58: Line 58:
 Παράλληλα η κλάση μας έχει και κάποιες συναρτήσεις για την μεταβολή της τιμής των παραπάνω μεταβλητών στις οποίες δεν θα επεκταθούμε σε αυτό το σημείο. Ας υποθέσουμε τώρα ότι θέλουμε να σχεδιάσουμε το ποδήλατο με ταχύτητες. Θα χρειαστεί να προσθέσουμε μία νέα μεταβλητή που αντιπροσωπεύει την θέση (αριθμό) της αλυσίδας στο γρανάζι. Η ιδιότητα της κληρονομικότητας μας επιτρέπει να δημιουργήσουμε τη νέα κλάση του ποδηλάτου με ταχύτητες,​ επεκτείνοντας την κλάση του κλασσικού ποδηλάτου και προσθέτοντας την επιπλέον μεταβλητή και ανάλογη λειτουργικότητα μέσω συναρτήσεων. Η κληρονομικότητα μας επιτρέπει να μην γράψουμε την νέα κλάση από την αρχή αλλά να πατήσουμε πάνω σε ένα υφιστάμενο σχέδιο. Παράλληλα η κλάση μας έχει και κάποιες συναρτήσεις για την μεταβολή της τιμής των παραπάνω μεταβλητών στις οποίες δεν θα επεκταθούμε σε αυτό το σημείο. Ας υποθέσουμε τώρα ότι θέλουμε να σχεδιάσουμε το ποδήλατο με ταχύτητες. Θα χρειαστεί να προσθέσουμε μία νέα μεταβλητή που αντιπροσωπεύει την θέση (αριθμό) της αλυσίδας στο γρανάζι. Η ιδιότητα της κληρονομικότητας μας επιτρέπει να δημιουργήσουμε τη νέα κλάση του ποδηλάτου με ταχύτητες,​ επεκτείνοντας την κλάση του κλασσικού ποδηλάτου και προσθέτοντας την επιπλέον μεταβλητή και ανάλογη λειτουργικότητα μέσω συναρτήσεων. Η κληρονομικότητα μας επιτρέπει να μην γράψουμε την νέα κλάση από την αρχή αλλά να πατήσουμε πάνω σε ένα υφιστάμενο σχέδιο.
  
-Επεκτείνοντας την παραπάνω συλλογιστική μπορούμε να έχουμε πολλαπλές ιεραρχίες κλάσεων. Για παράδειγμα,​ από το ποδήλατο με ταχύτητας μπορεί να οριστεί το ποδήλατο για δύο επιβάτες με ταχύτητες ή το ποδήλατο για δύο επιβάτες με ταχύτητες και αμορτισέρ.+Επεκτείνοντας την παραπάνω συλλογιστική μπορούμε να έχουμε πολλαπλές ιεραρχίες κλάσεων. Για παράδειγμα,​ από το ποδήλατο με ταχύτητες μπορεί να οριστεί το ποδήλατο για δύο επιβάτες με ταχύτητες ή το ποδήλατο για δύο επιβάτες με ταχύτητες και αμορτισέρ.
  
 //​**ποδήλατο** --> **ποδήλατο με ταχύτητες** --> **ποδήλατο με ταχύτητες για δύο επιβάτες** -> **ποδήλατο με ταχύτητες και αμορτισέρ για δύο επιβάτες**//​. //​**ποδήλατο** --> **ποδήλατο με ταχύτητες** --> **ποδήλατο με ταχύτητες για δύο επιβάτες** -> **ποδήλατο με ταχύτητες και αμορτισέρ για δύο επιβάτες**//​.
Line 121: Line 121:
   * **Ευκολότερη αποσφαλμάτωση:​** Κατά την αποσφαλμάτωση ο αρχικός έλεγχος μπορεί να γίνει σε επίπεδο κλάσης (**Unit testing**). Αλλαγές σε μία κλάση δεν συνεπάγονται αλλαγές και σε άλλα σημεία του προγράμματος που χρησιμοποιούν την κλάση αυτή.   * **Ευκολότερη αποσφαλμάτωση:​** Κατά την αποσφαλμάτωση ο αρχικός έλεγχος μπορεί να γίνει σε επίπεδο κλάσης (**Unit testing**). Αλλαγές σε μία κλάση δεν συνεπάγονται αλλαγές και σε άλλα σημεία του προγράμματος που χρησιμοποιούν την κλάση αυτή.
   * **Μία ομάδα προγραμματιστών μπορεί να εργαστεί παράλληλα:​**   * **Μία ομάδα προγραμματιστών μπορεί να εργαστεί παράλληλα:​**
-    * Ορίζονται ​τα κατάλληλα interfaces που πρέπει να υλοποιηθούν+    * Ορίζεται ο τρόπος με τον οποίο επικοινωνούν ​οι κλάσεις μεταξύ τους.
     * Κάθε προγραμματιστής ή ομάδα υλοποιεί τις επιμέρους κλάσεις που του/​της ανατίθενται.     * Κάθε προγραμματιστής ή ομάδα υλοποιεί τις επιμέρους κλάσεις που του/​της ανατίθενται.
     * Ο έλεγχος και η αποσφαλμάτωση του κώδικα σε μεγάλο βαθμό γίνεται διακριτά ανά κλάση ή ομάδα κλάσεων.     * Ο έλεγχος και η αποσφαλμάτωση του κώδικα σε μεγάλο βαθμό γίνεται διακριτά ανά κλάση ή ομάδα κλάσεων.
-    * Εάν μία κλάση δεν είναι καλά σχεδιασμένη ή υλοποιημένη μπορούμε να την ξαναγράψουμε από την αρχή χωρίς να επηρεαστεί ο υπόλοιπος κώδικας.+    * Εάν μία κλάση δεν είναι καλά σχεδιασμένη ή υλοποιημένη μπορούμε να την ξαναγράψουμε από την αρχή χωρίς να επηρεαστεί ο υπόλοιπος κώδικας, με την προϋπόθεση ότι δεν αλλάζει ο τρόπος με τον οποίο επικοινωνεί με τις υπόλοιπες κλάσεις.
   * Στον αντικειμενοστραφή προγραμματισμό η φάση του σχεδιασμού είναι εξαιρετικά σημαντική. Καλός σχεδιασμός σημαίνει συντηρήσιμος,​ ευκολότερος στην ανάπτυξη κώδικας.   * Στον αντικειμενοστραφή προγραμματισμό η φάση του σχεδιασμού είναι εξαιρετικά σημαντική. Καλός σχεδιασμός σημαίνει συντηρήσιμος,​ ευκολότερος στην ανάπτυξη κώδικας.
  
oop/introduction.txt · Last modified: 2017/02/16 08:34 by gthanos