This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
oop:introduction [2017/02/10 15:13] gthanos [Διεπαφές - Interfaces] |
oop:introduction [2017/02/10 15:15] gthanos [Πλεονεκτήματα του Αντικ/στραφούς Προγραμματισμού] |
||
---|---|---|---|
Line 95: | Line 95: | ||
==== Πλεονεκτήματα του Αντικ/στραφούς Προγραμματισμού ==== | ==== Πλεονεκτήματα του Αντικ/στραφούς Προγραμματισμού ==== | ||
+ | |||
* **Αρθρωτή Δομή (Modularity):** O κώδικας μίας κλάσης μπορεί να σχεδιαστεί και να αναπτυχθεί εντελώς ανεξάρτητα από τον κώδικα άλλης κλάσης. Η υλοποίηση μίας κλάσης μπορεί να αλλάξει ριζικά χωρίς να επηρεαστεί ο κώδικας των κλάσεων που χρησιμοποιούν τη συγκεκριμένη κλάση. | * **Αρθρωτή Δομή (Modularity):** O κώδικας μίας κλάσης μπορεί να σχεδιαστεί και να αναπτυχθεί εντελώς ανεξάρτητα από τον κώδικα άλλης κλάσης. Η υλοποίηση μίας κλάσης μπορεί να αλλάξει ριζικά χωρίς να επηρεαστεί ο κώδικας των κλάσεων που χρησιμοποιούν τη συγκεκριμένη κλάση. | ||
* **Απόκρυψη πληροφορίας:** Στον αντικειμενοστραφή προγραμματισμό δεν μας ενδιαφέρει η εσωτερική υλοποίηση κάθε κλάσης αλλά μόνο οι δημόσιες (public) μέθοδοι που υλοποιεί. | * **Απόκρυψη πληροφορίας:** Στον αντικειμενοστραφή προγραμματισμό δεν μας ενδιαφέρει η εσωτερική υλοποίηση κάθε κλάσης αλλά μόνο οι δημόσιες (public) μέθοδοι που υλοποιεί. | ||
- | * **Επαναχρησιμοποίηση κώδικα:** Η κλάση σχεδιάζεται έτσι ώστε να μπορεί να επαναχρησιμοποιηθεί και σε άλλα προγράμματα. | + | * **Επαναχρησιμοποίηση κώδικα:** Η κλάση σχεδιάζεται έτσι ώστε να μπορεί να επαναχρησιμοποιηθεί και σε άλλες κλάσεις. Η επαναχρησιμοποίηση κώδικα βρίσκει εφαρμογή μέσω της κληρονομικότητας. |
- | * **Επεκτασιμότητα:** Η κλάση μπορεί να επεκταθεί μέσω της κληρονομικότητας σε πιο ειδικές κλάσεις. | + | * **Επεκτασιμότητα:** Οποιαδήποτε κλάση μπορεί να επεκταθεί μέσω της κληρονομικότητας σε πιο ειδικές κλάσεις. |
* **Ευκολότερη αποσφαλμάτωση:** Κατά την αποσφαλμάτωση ο αρχικός έλεγχος μπορεί να γίνει σε επίπεδο κλάσης (**Unit testing**). Αλλαγές σε μία κλάση δεν συνεπάγονται αλλαγές και σε άλλα σημεία του προγράμματος που χρησιμοποιούν την κλάση αυτή. | * **Ευκολότερη αποσφαλμάτωση:** Κατά την αποσφαλμάτωση ο αρχικός έλεγχος μπορεί να γίνει σε επίπεδο κλάσης (**Unit testing**). Αλλαγές σε μία κλάση δεν συνεπάγονται αλλαγές και σε άλλα σημεία του προγράμματος που χρησιμοποιούν την κλάση αυτή. | ||
- | * **Μία ομάδα προγραμματιστών μπορεί να εργαστεί παράλληλα:** | + | * **Σχεδιασμός:** Στον αντικειμενοστραφή προγραμματισμό η φάση του σχεδιασμού είναι εξαιρετικά σημαντική. Καλός σχεδιασμός σημαίνει συντηρήσιμος, ευκολότερος στην ανάπτυξη κώδικας. Αντίθετα ο κακός σχεδιασμός οδηγεί διαρκώς σε προβλήματα που ανακύπτουν στην φάση της ανάπτυξης. |
- | * Ορίζεται ο τρόπος με τον οποίο επικοινωνούν οι κλάσεις μεταξύ τους. | + | |
- | * Κάθε προγραμματιστής ή ομάδα υλοποιεί τις επιμέρους κλάσεις που του/της ανατίθενται. | + | |
- | * Ο έλεγχος και η αποσφαλμάτωση του κώδικα σε μεγάλο βαθμό γίνεται διακριτά ανά κλάση ή ομάδα κλάσεων. | + | | Προηγούμενο: [[java:break_loop_statements |Εντολές τερματισμού και ελέγχου της ανακύκλωσης]] | [[:toc | Περιεχόμενα ]]| | Επόμενο: [[:java:class | Η κλάση ]]| |
- | * Εάν μία κλάση δεν είναι καλά σχεδιασμένη ή υλοποιημένη μπορούμε να την ξαναγράψουμε από την αρχή χωρίς να επηρεαστεί ο υπόλοιπος κώδικας, με την προϋπόθεση ότι δεν αλλάζει ο τρόπος με τον οποίο επικοινωνεί με τις υπόλοιπες κλάσεις. | + | |
- | * Στον αντικειμενοστραφή προγραμματισμό η φάση του σχεδιασμού είναι εξαιρετικά σημαντική. Καλός σχεδιασμός σημαίνει συντηρήσιμος, ευκολότερος στην ανάπτυξη κώδικας. | + | |
- | | [[:toc | Περιεχόμενα ]]|| Επόμενο: [[:java:install | Εγκατάσταση του περιβάλλοντος ανάπτυξης JDK ]]| | ||