Προγραμματισμός

Εξερεύνηση των προτύπων σχεδιασμού MVC, MVP και MVVM

Η διεπαφή χρήστη συχνά περιέχει πολλή ακαταστασία κώδικα κυρίως λόγω της περίπλοκης λογικής που πρέπει να χειριστεί. Τα μοτίβα παρουσίασης είναι σχεδιασμένα κυρίως με έναν στόχο κατά νου, μειώνοντας τον περίπλοκο κώδικα στο επίπεδο παρουσίασης και καθιστώντας τον κώδικα στη διεπαφή χρήστη καθαρό και διαχειρίσιμο. Σε αυτήν την ανάρτηση, θα παρουσιάσω μια συζήτηση σχετικά με τα μοτίβα σχεδιασμού MVC, MVP και MVVM και θα επισημάνω πότε πρέπει να είναι το σχέδιο επιλογής έναντι του άλλου.

Ελεγκτής προβολής μοντέλου

Το πλαίσιο Model View Controller (κοινώς γνωστό ως MVC) σάς βοηθά να δημιουργήσετε εφαρμογές που είναι πιο εύκολο να δοκιμαστούν και να συντηρηθούν. Αποτελείται από τρία κύρια συστατικά, συγκεκριμένα:

  1. Μοντέλο - αυτό είναι το επίπεδο που αντιπροσωπεύει τα δεδομένα της εφαρμογής
  2. Προβολή - αντιπροσωπεύει την παρουσίαση ή το επίπεδο διεπαφής χρήστη
  3. Ελεγκτής - αυτό το επίπεδο περιέχει συνήθως την επιχειρηματική λογική της εφαρμογής σας

Ο πρωταρχικός στόχος του σχεδιασμού MVC είναι ο διαχωρισμός των ανησυχιών για τη διευκόλυνση της δυνατότητας δοκιμής. Το σχέδιο σχεδίασης του Model View Controller σάς δίνει τη δυνατότητα να απομονώσετε τις ανησυχίες και να κάνετε τον κώδικα της εφαρμογής σας πιο εύκολο στη δοκιμή και τη συντήρηση. Σε μια τυπική σχεδίαση MVC, το αίτημα φτάνει πρώτα στον ελεγκτή που συνδέει το μοντέλο με την αντίστοιχη προβολή. Στο σχέδιο σχεδίασης MVC, η προβολή και ο ελεγκτής κάνουν χρήση του σχεδιασμού στρατηγικής και η προβολή και το μοντέλο συγχρονίζονται χρησιμοποιώντας τη σχεδίαση παρατηρητή. Ως εκ τούτου, μπορούμε να πούμε ότι το MVC είναι ένα σύνθετο πρότυπο. Ο ελεγκτής και η προβολή συνδέονται χαλαρά και ένας ελεγκτής μπορεί να χρησιμοποιηθεί από πολλές προβολές. Η προβολή προσυπογράφει τις αλλαγές στο μοντέλο.

Πρόγραμμα παρουσίασης μοντέλου

Το σχέδιο σχεδίασης MVP (Model View Presenter) περιλαμβάνει επίσης τρία στοιχεία - το μοντέλο, την προβολή και τον παρουσιαστή. Στο σχέδιο σχεδίασης MVP, ο ελεγκτής (σε MVC) αντικαθίσταται από τον παρουσιαστή. Σε αντίθεση με το σχέδιο σχεδίασης MVC, ο παρουσιαστής αναφέρεται πίσω στην προβολή, λόγω του οποίου η κοροϊδία της προβολής είναι ευκολότερη και ο έλεγχος μονάδας εφαρμογών που αξιοποιούν το μοτίβο σχεδίασης MVP πάνω από το μοτίβο σχεδίασης MVC είναι πολύ ευκολότερες. Στο σχέδιο σχεδίασης MVP, ο παρουσιαστής χειρίζεται το μοντέλο και ενημερώνει επίσης την προβολή. Υπάρχουν δύο παραλλαγές αυτού του σχεδιασμού. Αυτά περιλαμβάνουν τα ακόλουθα.

  1. Παθητική προβολή - σε αυτήν τη στρατηγική, η προβολή δεν γνωρίζει το μοντέλο και ο παρουσιαστής ενημερώνει την προβολή για να αντικατοπτρίζει τις αλλαγές στο μοντέλο.
  2. Εποπτικός ελεγκτής - σε αυτήν τη στρατηγική, η προβολή αλληλεπιδρά με το μοντέλο απευθείας για τη σύνδεση δεδομένων με τα στοιχεία ελέγχου δεδομένων χωρίς την παρέμβαση του παρουσιαστή. Ο παρουσιαστής είναι υπεύθυνος για την ενημέρωση του μοντέλου. Χειρίζεται την προβολή μόνο εάν χρειάζεται - εάν χρειάζεστε μια σύνθετη λογική διεπαφής χρήστη για να εκτελεστεί.

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

Το σχέδιο σχεδίασης MVP προτιμάται από το MVC όταν η εφαρμογή σας πρέπει να παρέχει υποστήριξη για πολλές τεχνολογίες διεπαφής χρήστη. Προτιμάται επίσης εάν έχετε πολύπλοκο περιβάλλον εργασίας χρήστη με πολλή αλληλεπίδραση χρήστη. Εάν θέλετε να κάνετε αυτοματοποιημένη δοκιμή μονάδας στη διεπαφή χρήστη της εφαρμογής σας, το σχέδιο σχεδίασης MVP είναι κατάλληλο και προτιμάται από τον παραδοσιακό σχεδιασμό MVC.

Μοντέλο - Προβολή - ViewModel (MVVM)

Το μοντέλο - View - ViewModel (MVVM) είναι μια παραλλαγή του σχεδιαστικού μοντέλου Martin Fowler's Presentation Model. Το MVVM είναι μια τελειοποίηση του δημοφιλούς σχεδιασμού MVC και το ViewModel στο MVVM χρησιμοποιείται για τη διευκόλυνση του διαχωρισμού παρουσίασης. Στο MVVM η λογική αποθηκεύεται στον παρουσιαστή και η προβολή είναι εντελώς απομονωμένη από το μοντέλο. Ενώ ο παρουσιαστής δεν γνωρίζει την προβολή, η προβολή γνωρίζει τον παρουσιαστή - ο παρουσιαστής στο MVVM χρησιμοποιείται για την απεικόνιση μιας αφηρημένης προβολής του περιβάλλοντος εργασίας χρήστη. Μια παθητική άποψη υπονοεί ότι η προβολή δεν έχει καμία γνώση του μοντέλου. Στο μοτίβο σχεδίασης MVVM, η προβολή είναι ενεργή και περιέχει συμπεριφορές, συμβάντα και πληροφορίες δέσμευσης δεδομένων. Σημειώστε ότι η προβολή στο MVVM δεν είναι υπεύθυνη για τη διαχείριση των πληροφοριών κατάστασης - η προβολή είναι μάλλον συγχρονισμένη με το viewmodel. Το viewmodel στο MVVM είναι υπεύθυνο για το διαχωρισμό της παρουσίασης και εκθέτει μεθόδους και εντολές για τη διαχείριση της κατάστασης μιας προβολής και τον χειρισμό του μοντέλου.

Πώς επικοινωνεί η προβολή και το μοντέλο προβολής στο MVVM; Λοιπόν, η προβολή και το μοντέλο προβολής στο MVVM επικοινωνούν χρησιμοποιώντας μεθόδους, ιδιότητες και συμβάντα. Η αμφίδρομη σύνδεση δεδομένων ή η αμφίδρομη σύνδεση δεδομένων μεταξύ της προβολής και του μοντέλου προβολής διασφαλίζει ότι τα μοντέλα και οι ιδιότητες του μοντέλου προβολής είναι συγχρονισμένα με την προβολή. Το σχέδιο σχεδίασης MVVM ταιριάζει σε εφαρμογές που χρειάζονται υποστήριξη για αμφίδρομη σύνδεση δεδομένων.