Code ReUse 3 – OOP

Μία άλλη προσέγγιση λοιπόν είναι για να έχουμε διαθέσιμο κώδικα που έχουμε ήδη αναπτύξει σε άλλα προγράμματα είναι να χρησιμοποιήσουμε τις τεχνικές του αντικειμενοστρεφούς προγραμματισμού (OOP – Object Oriented Programming). Τα άρθρα δεν είναι για πολλές θεωρίες … θεωρούμε λοιπόν ότι ξέρετε τι είναι και πως υλοποιείται στη γλώσσα Πάϊθον και προχωρούμε, για εσάς που δεν ξέρετε ακόμα OOP, διαβάστε και επιστρέψτε δριμύτεροι, ή συνεχίστε με δική σας ευθύνη.

Έστω ότι έχουμε υλοποιήσει τις συναρτήσεις του προηγούμενου άρθρου δηλαδή έχουμε τον παρακάτω κώδικα:

Σκεφτόμαστε το εξής: Οι λίστες έχουν τη δική τους κλάση με ένα σωρό μεθόδους (συναρτήσεις που εκτελούν ενέργειες πάνω σε αντικείμενα) όπως reverse, sort, append, pop κ.ά. έτοιμες. Μήπως μπορούμε να προσθέσουμε και άλλες εφόσον και αυτές που υλοποιήσαμε παραπάνω έχουν παρόμοια χαρακτηριστικά ?

Το να φτιάξουμε μία νέα κλάση και να βάλουμε τις δικές μας μόνο, είναι βεβαίως βεβαίως μία λύση, στην προκειμένη όμως περίπτωση εφόσον ενεργούμε πάνω σε λίστες, θα απωλέσουμε αυτές που μας παρέχει εγγενώς η κλάση της λίστας. Γι’ αυτό λοιπόν φτιάχνουμε όχι μία νέα κλάση  αλλά υποκλάση (ή παράγωγη κλάση) που θα κληρονομήσει όλα τα χαρακτηριστικά (ιδιότητες και μεθόδους) της βασικής κλάσης (υπερκλάσης). Ας γράψουμε λοιπόν τα παρακάτω:

και ας εκτελέσουμε από τη γραμμή του διερμηνέα τις παρακάτω εντολές:

δημιουργήσαμε δύο αντικείμενα το x & y στιγμιότυπα των κλάσεων list & MyList αντίστοιχα. Εκτελούμε τώρα τις εντολές:

η “μαϊλίστα” y διαθέτει τη μέθοδο pop_all. Εκτελούμε επίσης τις εντολές:

καθώς και τη μέθοδο unique. Προσέξτε τώρα το εξής: η μέθοδος pop_all τροποποιεί την αρχική λίστα, ενώ η μέθοδος unique επιστρέφει μία νέα “μαϊλίστα” αφήνοντας ανέπαφη την αρχική. Το βλέπουμε ξανά παρακάτω:

Εκτελούμε τώρα τις εντολές:

Το νέο αντικείμενο “μαϊλίστας” z διαθέτει όλες τις μεθόδους αφού τις έχει κληρονομήσει από την αρχική κλάση της λίστας. Ενώ το αντικείμενο x που είναι μία απλή λίστα δε διαθέτει τις νέες μεθόδους pop_all & unique. Έτσι εάν επιθυμούμε να έχουμε διαθέσιμο τον κωδικά μας ενθυλακώνοντας τις συναρτήσεις μας σε κλάσεις μπορούμε να έχουμε ένα ισχυρό και επεκτάσιμο σχεδιασμό στην υλοποίηση των εφαρμογών μας.

Πατήστε το play να φορτώσετε την κλάση και κάντε και εσείς τις δοκιμές σας στο διερμηνέα, μπορείτε να κάνετε αλλαγές ή προσθήκες στον κώδικα πατώντας το μολύβι

Χμμ αυτά λοιπόν για σήμερα ….

Η μίνι σειρά επαναχρησιμοποίησης κώδικα έλαβε τέλος. Ελπίζω να τη βρήκατε χρήσιμη. Εάν πάλι χαθήκατε στις πολλές πληροφορίες, δοκιμάστε κάτι διαφορετικό:

Αποτέλεσμα εικόνας για lost

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.