Διαφορά μεταξύ σύζευξης και συνοχής

Anonim

σύζευξη και συνοχή

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

Τι είναι η συνοχή;

Η συνοχή μετρά πόσο ισχυρές είναι όλες οι λειτουργίες σε μια ενότητα προγράμματος. Καλά δομημένες τάξεις οδηγούν σε ιδιαίτερα συνεκτικά προγράμματα. Εάν μια συγκεκριμένη τάξη εκτελεί ένα σύνολο πολύ συναφών λειτουργιών, αυτή η τάξη λέγεται ότι είναι συνεκτική. Από την άλλη πλευρά, εάν μια τάξη εκτελεί μια δέσμη εντελώς ανεξάρτητων λειτουργιών που σημαίνει ότι η τάξη δεν είναι συνεκτική καθόλου. Είναι σημαντικό να καταλάβουμε ότι η μη συνεκτικότητα δεν σημαίνει ότι η συνολική εφαρμογή δεν έχει την απαιτούμενη λειτουργικότητα. Είναι απλά ότι χωρίς συνοχή, θα είναι πολύ δύσκολο να αντιμετωπιστεί η λειτουργικότητα, διότι θα διασκορπιστεί σε πολλά λάθος σημεία καθώς η πολυπλοκότητα της εφαρμογής αυξάνεται με την πάροδο του χρόνου. Η διατήρηση, η τροποποίηση και η επέκταση συμπεριφορών διάσπαρτων σε όλο τον κώδικα είναι πολύ κουραστική ακόμη και για τους περισσότερους προγραμματιστές εμπειρία.

Τι είναι η σύζευξη;

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

Ποια είναι η διαφορά μεταξύ ζεύξης και συνοχής;

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