Διαφορά μεταξύ αντικειμενοστρεφούς προγραμματισμού και διαδικαστικού προγραμματισμού
Αντικειμενοστρεφής προγραμματισμός εναντίον διαδικαστικού προγραμματισμού
Ο προγραμματισμός αντικειμένων (OOP) και ο διαδικαστικός προγραμματισμός είναι δύο παραδείγματα προγραμματισμού. Ένα παράδειγμα προγραμματισμού είναι ένα θεμελιώδες στυλ του προγραμματισμού υπολογιστών και διαφέρουν στον τρόπο με τον οποίο εκπροσωπούνται διάφορα στοιχεία του προγράμματος και πώς καθορίζονται τα βήματα για την επίλυση των προβλημάτων. Όπως υποδηλώνει το όνομα, το OOP επικεντρώνεται στην εκπροσώπηση προβλημάτων χρησιμοποιώντας αντικείμενα πραγματικού κόσμου και τη συμπεριφορά τους, ενώ ο διαδικαστικός προγραμματισμός ασχολείται με την αντιπροσώπευση λύσεων σε προβλήματα χρησιμοποιώντας διαδικασίες, οι οποίες είναι συλλογές κώδικα που εκτελούνται με συγκεκριμένη σειρά. Υπάρχουν γλώσσες προγραμματισμού που υποστηρίζουν βασικές πτυχές των OOP (λεγόμενες γλώσσες OOP), διαδικαστικές (που ονομάζονται διαδικαστικές γλώσσες) και οι δύο. Αλλά ένα σημαντικό πράγμα που πρέπει να σημειωθεί είναι ότι το OOP και το Procedural είναι δύο τρόποι να εκπροσωπούνται τα προβλήματα που πρέπει να επιλυθούν και δεν έχει σημασία ποια γλώσσα χρησιμοποιείται. Με άλλα λόγια, οι γλώσσες OOP μπορούν να χρησιμοποιηθούν για τον διαδικαστικό προγραμματισμό, ενώ μερικές φορές μπορούν να χρησιμοποιηθούν μερικές προσπάθειες για τις Λειτουργικές Γλώσσες.
Ο διαδικαστικός προγραμματισμός είναι ένας τρόπος προγραμματισμού, προσδιορίζοντας το σύνολο των βημάτων για την επίλυση ενός συγκεκριμένου προβλήματος και την ακριβή σειρά που πρέπει να εκτελεστούν ώστε να επιτευχθεί το επιθυμητό αποτέλεσμα ή κατάσταση. Για παράδειγμα, εάν θέλετε να υπολογίσετε το υπόλοιπο κλεισίματος για ένα τραπεζικό λογαριασμό, τότε τα απαιτούμενα βήματα θα είναι τα εξής. Αρχικά, αποκτάτε το αρχικό υπόλοιπο του λογαριασμού και στη συνέχεια μειώνετε όλα τα χρεωστικά ποσά που εμφανίστηκαν κατά τη διάρκεια του μήνα. Μετά από αυτό, προσθέτετε όλα τα ποσά πίστωσης που εμφανίστηκαν κατά τη διάρκεια του μήνα. Στο τέλος της διαδικασίας, θα λάβετε το τέλος κλεισίματος του λογαριασμού στο τέλος του μήνα. Μία από τις κύριες έννοιες του διαδικαστικού προγραμματισμού είναι η κλήση διαδικασίας. Μια διαδικασία που είναι επίσης γνωστή ως μια υπορουτίνα, μια μέθοδος ή μια λειτουργία περιέχει έναν κατάλογο με οδηγίες που πρέπει να εκτελεστούν. Μια διαδικασία μπορεί να κληθεί ανά πάσα στιγμή κατά την εκτέλεση με οποιαδήποτε άλλη διαδικασία ή από μόνη της. Παραδείγματα διαδικαστικών γλωσσών προγραμματισμού είναι οι C και Pascal.
Στο POP, η εστίαση είναι στο να σκεφτόμαστε το πρόβλημα που πρέπει να λυθεί με όρους πραγματικών στοιχείων και να αντιπροσωπεύει το πρόβλημα από την άποψη των αντικειμένων και της συμπεριφοράς τους. Το αντικείμενο είναι μια δομή δεδομένων που μοιάζει πολύ με κάποιο αντικείμενο πραγματικού κόσμου. Τα αντικείμενα περιέχουν πεδία δεδομένων και μεθόδους που αντιπροσωπεύουν ιδιότητες και συμπεριφορά αντικειμένων πραγματικού κόσμου. Υπάρχουν πολλές σημαντικές έννοιες OOP όπως η αφαίρεση δεδομένων, η ενθυλάκωση, ο πολυμορφισμός, τα μηνύματα, η μεταβλητότητα και η κληρονομικότητα. Ορισμένες δημοφιλείς γλώσσες OOP είναι Java και C #. Ωστόσο, μπορούν να χρησιμοποιηθούν για την εκτέλεση διαδικασιών προγραμματισμού επίσης.
Η βασική διαφορά μεταξύ του OOP και του διαδικαστικού προγραμματισμού είναι ότι το αντικείμενο του διαδικαστικού προγραμματισμού είναι να αναλύσει το καθήκον προγραμματισμού σε μια συλλογή μεταβλητών και υπορουτίνων, ενώ το επίκεντρο του OOP είναι να διασπάσει το προγραμματισμό σε αντικείμενα, τα οποία ενσωματώνουν δεδομένα και μεθόδους. Η πιο αξιοσημείωτη διαφορά θα μπορούσε να είναι ότι ενώ ο διαδικαστικός προγραμματισμός χρησιμοποιεί διαδικασίες για άμεση λειτουργία σε δομές δεδομένων, το OOP θα συνδέσει μαζί τα δεδομένα και τις μεθόδους έτσι ώστε ένα αντικείμενο να λειτουργεί με δικά του δεδομένα. Όταν πρόκειται για την ονοματολογία, η διαδικασία, η ενότητα, η κλήση διαδικασίας και οι μεταβλητές στο Διαδικαστικό Προγραμματισμό αναφέρονται συχνά ως μέθοδος, αντικείμενο, μήνυμα και ιδιότητα στο OOP, αντίστοιχα.