AOP vs OOP

Ο προγραμματισμός προσανατολισμού (AOP) και ο OOP (αντικειμενοστραφής προγραμματισμός) είναι δύο παραδείγματα προγραμματισμού. Ένα παράδειγμα προγραμματισμού είναι ένα βασικό στυλ προγραμματισμού υπολογιστών. Τα παραδείγματα προγραμματισμού διαφέρουν ως προς τον τρόπο με τον οποίο εκπροσωπείται κάθε στοιχείο των προγραμμάτων και τον τρόπο με τον οποίο ορίζεται κάθε βήμα για την επίλυση προβλημάτων. Όπως υποδηλώνει το όνομα, το OOP επικεντρώνεται στην εκπροσώπηση προβλημάτων που χρησιμοποιούν αντικείμενα πραγματικού κόσμου και τη συμπεριφορά τους, ενώ το AOP ασχολείται με την κατανομή των προγραμμάτων σε ξεχωριστές διασταυρούμενες ανησυχίες.

Τι είναι το AOP;

Το AOP είναι ένα πρότυπο προγραμματισμού, το οποίο ασχολείται με την κατανομή ενός προγράμματος σε συνεκτικούς τομείς λειτουργικότητας (που ονομάζονται ανησυχίες) που περνούν σε πολλαπλές περιοχές, προκειμένου να αυξηθεί η διαμόρφωση. Υποστήριξη για αφαίρεση (όπως κατηγορίες, μεθόδους κλπ.) Για την ομαδοποίηση και την ενσωμάτωση ανησυχιών σε μοναδικές οντότητες παρέχεται σε πολλά άλλα παραδείγματα προγραμματισμού. Ωστόσο, οι ανησυχίες (όπως η "καταγραφή") αποτελούν παραδείγματα διασταυρούμενων ανησυχιών, επειδή κάθε καταγεγραμμένο τμήμα του συστήματος επηρεάζεται από τη στρατηγική που χρησιμοποιείται για την καταγραφή. Το κύριο μέλημα όλων των εφαρμογών AOP είναι να έχουν κατάλληλες διατομεακές εκφράσεις για να συγκεντρώνουν όλες τις ανησυχίες σε μια ενιαία τοποθεσία.

Τι είναι το OOP;

Στο Π.Ο.Π., η εστίαση είναι στο να σκεφτόμαστε το πρόβλημα που πρέπει να λυθεί με όρους πραγματικών στοιχείων και να αντιπροσωπεύει το πρόβλημα από την άποψη των αντικειμένων και της συμπεριφοράς τους. Οι τάξεις απεικονίζουν τις αφηρημένες αναπαραστάσεις αντικειμένων πραγματικού κόσμου. Οι τάξεις είναι σαν σχέδια ή πρότυπα, τα οποία συγκεντρώνουν παρόμοια αντικείμενα ή πράγματα που μπορούν να ομαδοποιηθούν. Οι κλάσεις έχουν ιδιότητες που ονομάζονται ιδιότητες. Τα χαρακτηριστικά εφαρμόζονται ως μεταβλητές σφαιρικού και στιγμιότυπου. Οι μέθοδοι στις τάξεις αντιπροσωπεύουν ή ορίζουν τη συμπεριφορά αυτών των κλάσεων. Οι μέθοδοι και τα χαρακτηριστικά των κλάσεων ονομάζονται μέλη της τάξης. Μια περίπτωση μιας κλάσης ονομάζεται αντικείμενο. Επομένως, ένα αντικείμενο είναι μια δομή δεδομένων που μοιάζει πολύ με κάποιο πραγματικό αντικείμενο.

Υπάρχουν πολλές σημαντικές έννοιες OOP, όπως η αφαίρεση των δεδομένων, η ενθυλάκωση, ο πολυμορφισμός, τα μηνύματα, η μεταβλητότητα και η κληρονομικότητα. Τυπικά, η ενθυλάκωση επιτυγχάνεται κάνοντας τα χαρακτηριστικά ιδιωτικά, ενώ παράλληλα δημιουργούνται δημόσιες μέθοδοι που μπορούν να χρησιμοποιηθούν για την πρόσβαση σε αυτά τα χαρακτηριστικά. Η κληρονομιά επιτρέπει στον χρήστη να επεκτείνει τάξεις (που ονομάζονται δευτερεύουσες τάξεις) από άλλες κατηγορίες (που ονομάζονται σούπερ κλάσεις). Ο πολυμορφισμός επιτρέπει στον προγραμματιστή να αντικαταστήσει ένα αντικείμενο μιας τάξης στη θέση ενός αντικειμένου της υπερ-κατηγορίας του. Τυπικά, τα ουσιαστικά που εντοπίζονται στον ορισμό του προβλήματος γίνονται άμεσα τάξεις στο πρόγραμμα. Και ομοίως, τα ρήματα γίνονται μέθοδοι. Ορισμένες από τις πιο δημοφιλείς γλώσσες OOP είναι Java και C #.

Ποια είναι η διαφορά μεταξύ AOP και OOP;

Η βασική διαφορά μεταξύ του OOP και του AOP είναι ότι το επίκεντρο του OOP είναι να καταργήσει την εργασία προγραμματισμού σε αντικείμενα που ενθυλακώνουν δεδομένα και μεθόδους, ενώ το επίκεντρο του AOP είναι να διασπάσει το πρόγραμμα σε διασταυρούμενες ανησυχίες. Στην πραγματικότητα, η AOP δεν είναι ανταγωνιστής για το OOP, διότι προέκυψε από το παράδειγμα του OOP. Το AOP επεκτείνει το OOP αντιμετωπίζοντας μερικά από τα προβλήματά του. Το AOP εισάγει τακτοποιημένους τρόπους για την εφαρμογή διατομεακών ανησυχιών (οι οποίες ενδέχεται να έχουν διασκορπιστεί σε πολλά σημεία στην αντίστοιχη εφαρμογή του OOP) σε ένα μόνο σημείο. Επομένως, το AOP κάνει το πρόγραμμα καθαρότερο και πιο χαλαρά συνδεδεμένο.