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
Last revision Both sides next revision
oop:introduction [2017/02/10 15:13]
gthanos [Διεπαφές - Interfaces]
oop:introduction [2017/02/10 18:39]
doufexi Πρόσθεσα και την αγγλική μετάφραση κάποιων όρων.
Line 95: Line 95:
  
 ==== Πλεονεκτήματα του Αντικ/​στραφούς Προγραμματισμού ==== ==== Πλεονεκτήματα του Αντικ/​στραφούς Προγραμματισμού ====
 +
   * **Αρθρωτή Δομή (Modularity):​** O κώδικας μίας κλάσης μπορεί να σχεδιαστεί και να αναπτυχθεί εντελώς ανεξάρτητα από τον κώδικα άλλης κλάσης. Η υλοποίηση μίας κλάσης μπορεί να αλλάξει ριζικά χωρίς να επηρεαστεί ο κώδικας των κλάσεων που χρησιμοποιούν τη συγκεκριμένη κλάση.   * **Αρθρωτή Δομή (Modularity):​** O κώδικας μίας κλάσης μπορεί να σχεδιαστεί και να αναπτυχθεί εντελώς ανεξάρτητα από τον κώδικα άλλης κλάσης. Η υλοποίηση μίας κλάσης μπορεί να αλλάξει ριζικά χωρίς να επηρεαστεί ο κώδικας των κλάσεων που χρησιμοποιούν τη συγκεκριμένη κλάση.
-  * **Απόκρυψη πληροφορίας:​** Στον αντικειμενοστραφή προγραμματισμό δεν μας ενδιαφέρει η εσωτερική υλοποίηση κάθε κλάσης αλλά μόνο οι δημόσιες (public) μέθοδοι που υλοποιεί. +  * **Απόκρυψη πληροφορίας ​(Information Hiding):** Στον αντικειμενοστραφή προγραμματισμό δεν μας ενδιαφέρει η εσωτερική υλοποίηση κάθε κλάσης αλλά μόνο οι δημόσιες (public) μέθοδοι που υλοποιεί. 
-  * **Επαναχρησιμοποίηση κώδικα:​** Η κλάση σχεδιάζεται έτσι ώστε να μπορεί να επαναχρησιμοποιηθεί και σε άλλα προγράμματα. +  * **Επαναχρησιμοποίηση κώδικα ​(Code Reuse):** Η κλάση σχεδιάζεται έτσι ώστε να μπορεί να επαναχρησιμοποιηθεί και σε άλλες κλάσεις. Η επαναχρησιμοποίηση κώδικα βρίσκει εφαρμογή μέσω της κληρονομικότητας
-  * **Επεκτασιμότητα:​** ​Η κλάση μπορεί να επεκταθεί μέσω της κληρονομικότητας σε πιο ειδικές κλάσεις.+  * **Επεκτασιμότητα ​(Extensibility):** Οποιαδήποτε ​κλάση μπορεί να επεκταθεί μέσω της κληρονομικότητας σε πιο ειδικές κλάσεις.
   * **Ευκολότερη αποσφαλμάτωση:​** Κατά την αποσφαλμάτωση ο αρχικός έλεγχος μπορεί να γίνει σε επίπεδο κλάσης (**Unit testing**). Αλλαγές σε μία κλάση δεν συνεπάγονται αλλαγές και σε άλλα σημεία του προγράμματος που χρησιμοποιούν την κλάση αυτή.   * **Ευκολότερη αποσφαλμάτωση:​** Κατά την αποσφαλμάτωση ο αρχικός έλεγχος μπορεί να γίνει σε επίπεδο κλάσης (**Unit testing**). Αλλαγές σε μία κλάση δεν συνεπάγονται αλλαγές και σε άλλα σημεία του προγράμματος που χρησιμοποιούν την κλάση αυτή.
-  * **Μία ομάδα προγραμματιστών ​μπορεί να εργαστεί παράλληλα:** +  * **Σχεδιασμός:** Στον ​αντικειμενοστραφή προγραμματισμό η φάση του ​σχεδιασμού είναι εξαιρετικά σημαντική. Καλός σχεδιασμός σημαίνει συντηρήσιμος, ευκολότερος στην ανάπτυξη κώδικας. Αντίθετα ο κακός σχεδιασμός οδηγεί διαρκώς σε προβλήματα που ανακύπτουν στην φάση ​της ανάπτυξης. 
-    * Ορίζεται ο τρόπος με τον ​οποίο επικοινωνούν οι κλάσεις μεταξύ τους. + 
-    * Κάθε ​προγραμματιστής ή ομάδα υλοποιεί τις επιμέρους κλάσεις που του/της ανατίθενται. + 
-    * Ο έλεγχος και η αποσφαλμάτωση του ​κώδικα σε μεγάλο βαθμό γίνεται διακριτά ανά ​κλάση ​ή ομάδα κλάσεων+| Προηγούμενο: [[java:​break_loop_statements |Εντολές τερματισμού ​και ελέγχου ​της ανακύκλωσης]] | [[:toc | Περιεχόμενα ]]| | Επόμενο: [[:​java:​class | Η κλάση ]]|
-    * Εάν μία κλάση δεν είναι καλά σχεδιασμένη ή υλοποιημένη μπορούμε να την ξαναγράψουμε από την αρχή χωρίς ​να επηρεαστεί ο υπόλοιπος ​κώδικας, με την προϋπόθεση ότι δεν αλλάζει ο τρόπος με τον ​οποίο επικοινωνεί με τις υπόλοιπες κλάσεις. +
-  * Στον αντικειμενοστραφή προγραμματισμό η φάση του σχεδιασμού ​είναι εξαιρετικά σημαντική. Καλός σχεδιασμός σημαίνει συντηρήσιμος, ευκολότερος ​στην ανάπτυξη κώδικας.+
  
-| [[:toc | Περιεχόμενα ]]|| Επόμενο:​ [[:​java:​install | Εγκατάσταση του περιβάλλοντος ανάπτυξης JDK ]]| 
  
  
oop/introduction.txt · Last modified: 2017/02/16 08:34 by gthanos