MVC εναντίον MVVM – Διαφορά μεταξύ τους

Βασικές διαφορές μεταξύ MVC και MVVM

  • Το πλαίσιο MVC είναι ένα αρχιτεκτονικό μοτίβο που διαχωρίζει μια εφαρμογή σε τρία κύρια λογικά στοιχεία Model, View και Controller. Από την άλλη πλευρά, το MVVM διευκολύνει τον διαχωρισμό της ανάπτυξης της γραφικής διεπαφής χρήστη με τη βοήθεια γλώσσας σήμανσης ή κώδικα GUI
  • Στο MVC, ο ελεγκτής είναι το σημείο εισόδου στην Εφαρμογή, ενώ στο MVVM, η προβολή είναι το σημείο εισόδου στην Εφαρμογή.
  • Το στοιχείο MVC Model μπορεί να ελεγχθεί ξεχωριστά από το χρήστη, ενώ το MVVM είναι εύκολο για δοκιμή ξεχωριστής μονάδας και ο κώδικας βασίζεται σε συμβάντα.
  • Η αρχιτεκτονική MVC δημιουργεί μια σχέση «ένα προς πολλά» μεταξύ του ελεγκτή και της προβολής, ενώ η αρχιτεκτονική MVVM ορίζει μια σχέση «ένα προς πολλά» μεταξύ της Προβολής και του ViewModel.

Διαφορά μεταξύ MVVM και MVC

Τι είναι το MVC;

The Πλαίσιο MVC είναι ένα αρχιτεκτονικό μοτίβο που διαχωρίζει μια εφαρμογή σε τρία κύρια λογικά στοιχεία Model, View και Controller. Εξ ου και η συντομογραφία MVC. Η πλήρης μορφή MVC είναι Model View Controller.

Σε αυτήν την αρχιτεκτονική, ένα στοιχείο είναι κατασκευασμένο για να χειρίζεται συγκεκριμένες πτυχές ανάπτυξης μιας εφαρμογής. Το MVC διαχωρίζει την επιχειρηματική λογική και το επίπεδο παρουσίασης το ένα από το άλλο. Αυτό το αρχιτεκτονικό μοτίβο χρησιμοποιείται κυρίως για γραφικές διεπαφές χρήστη (GUIs).

Τι είναι το MVVM;

Η αρχιτεκτονική MVVM διευκολύνει τον διαχωρισμό της ανάπτυξης της γραφικής διεπαφής χρήστη με τη βοήθεια γλώσσας σήμανσης ή κώδικα GUI. Η πλήρης μορφή του MVVM είναι Model–View–ViewModel.

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

Μοτίβο MVC


MVC Archiδομή
MVC Archiδομή

Τρία σημαντικά στοιχεία MVC είναι:

  • Μοντέλο: Περιλαμβάνει όλα τα δεδομένα και τη σχετική λογική του.
  • Θέα: Παρουσιάστε δεδομένα στον χρήστη ή χειρίζεται την αλληλεπίδραση με τον χρήστη.
  • Ελεγκτής: Μια διεπαφή μεταξύ των στοιχείων Model και View.

Ας δούμε αναλυτικά κάθε ένα από αυτά τα στοιχεία:

Μοντέλο

Το στοιχείο μοντέλου αποθηκεύει δεδομένα και σχετική λογική. Αντιπροσωπεύει δεδομένα που μεταφέρονται μεταξύ στοιχείων ελεγκτή ή οποιαδήποτε άλλη σχετική επιχειρηματική λογική.

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

Προβολή

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

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

ελεγκτής

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

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

Μοτίβο MVVM

Εδώ, είναι ένα μοτίβο για το MVVM:

MVVM Archiδομή
MVVM Archiδομή

Η αρχιτεκτονική MVVM προσφέρει αμφίδρομη σύνδεση δεδομένων μεταξύ προβολής και μοντέλου προβολής. Σας βοηθά επίσης να αυτοματοποιήσετε τη διάδοση τροποποιήσεων μέσα στο View-Model στην προβολή. Το μοντέλο προβολής χρησιμοποιεί το μοτίβο παρατηρητή για να κάνει αλλαγές στο μοντέλο προβολής.

Ας δούμε ο ένας τον άλλον αυτό το στοιχείο λεπτομερώς:

Μοντέλο

Το μοντέλο αποθηκεύει δεδομένα και σχετική λογική. Αντιπροσωπεύει δεδομένα που μεταφέρονται μεταξύ στοιχείων ελεγκτή ή οποιαδήποτε άλλη σχετική επιχειρηματική λογική.

Για παράδειγμα, ένα αντικείμενο Controller θα ανακτήσει τις πληροφορίες του μαθητή από τη βάση δεδομένων του σχολείου. Χειρίζεται δεδομένα και τα στέλνει πίσω στη βάση δεδομένων ή τα χρησιμοποιεί για να αποδώσει τα ίδια δεδομένα.

Προβολή

Η Προβολή σημαίνει στοιχεία διεπαφής χρήστη όπως HTML, CSS, jQuery κ.λπ. In

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

Προβολή μοντέλου

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

Διαφορά μεταξύ MVC και MVVM Archiδομή

Εδώ, είναι η σημαντική διαφορά μεταξύ MVVM και MVC

MVC (Ελεγκτής προβολής μοντέλου) MVVM (Model ViewModel)
Ο ελεγκτής είναι το σημείο εισόδου στην Εφαρμογή. Η προβολή είναι το σημείο εισόδου στην Εφαρμογή.
Μία έως πολλές σχέσεις μεταξύ ελεγκτή και προβολής. Μία έως πολλές σχέσεις μεταξύ Προβολή & Προβολή μοντέλου.
Η προβολή δεν έχει αναφορά στον ελεγκτή Η προβολή έχει αναφορές στο View-Model.
Το MVC είναι παλιό μοντέλο Το MVVM είναι ένα σχετικά νέο μοντέλο.
Δύσκολη ανάγνωση, αλλαγή, δοκιμή μονάδας και επαναχρησιμοποίηση αυτού του μοντέλου Η διαδικασία εντοπισμού σφαλμάτων θα είναι περίπλοκη όταν έχουμε πολύπλοκες δεσμεύσεις δεδομένων.
Το στοιχείο MVC Model μπορεί να ελεγχθεί ξεχωριστά από το χρήστη Εύκολο για τη δοκιμή ξεχωριστής μονάδας και ο κώδικας βασίζεται σε συμβάντα.

Χαρακτηριστικά του MVC

Ακολουθούν σημαντικά χαρακτηριστικά του MVC:

  • Εύκολη και χωρίς τριβές δοκιμασιμότητα. Πλαίσιο εξαιρετικά ελεγχόμενο, επεκτάσιμο και βύσμα
  • Μπορείτε επίσης να αξιοποιήσετε τις υπάρχουσες δυνατότητες που προσφέρονται από το ASP.NET, το Django, το JSP κ.λπ.
  • Προσφέρει πλήρη έλεγχο του HTML καθώς και των διευθύνσεών σας URL.
  • Υποστηρίζει Test Driven Development (TDD)
  • Αυτή η αρχιτεκτονική προσφέρει διαχωρισμό της λογικής
  • Επιτρέπει τη δρομολόγηση URL φιλικών προς το SEO.
  • Προσφέρει χαρτογράφηση για κατανοητές και αναζητήσιμες διευθύνσεις URL.

Χαρακτηριστικά του MVVM

Εδώ, είναι τα χαρακτηριστικά της αρχιτεκτονικής MVVM:

  • Το MVVM είναι γραμμένο για επιτραπέζια εφαρμογή με δυνατότητες σύνδεσης δεδομένων – XAML και διεπαφή INotifyPropertyChanged
  • Εάν θέλετε να κάνετε τροποποίηση στο View-Model, το View-Model χρησιμοποιεί ένα μοτίβο παρατηρητή.
  • Το μοτίβο MVVM χρησιμοποιείται κυρίως από WPF, Silverlight, nRoute, κ.λπ.

Πλεονεκτήματα του MVC

Εδώ, είναι τα πλεονεκτήματα/πλεονεκτήματα του MVC

  • Ευκολότερη υποστήριξη για νέους τύπους πελατών
  • Η ανάπτυξη των διαφόρων στοιχείων μπορεί να πραγματοποιηθεί παράλληλα.
  • Αποφεύγει την πολυπλοκότητα διαιρώντας μια εφαρμογή σε ξεχωριστές (MVC) μονάδες
  • Χρησιμοποιεί μόνο ένα μοτίβο μπροστινού ελεγκτή που επεξεργάζεται αιτήματα εφαρμογών web χρησιμοποιώντας έναν μόνο ελεγκτή.
  • Προσφέρει την καλύτερη υποστήριξη για ανάπτυξη βάσει δοκιμής
  • Λειτουργεί καλά για εφαρμογές Ιστού, οι οποίες υποστηρίζονται από μεγάλες ομάδες σχεδιαστών και προγραμματιστών ιστού.
  • Παρέχει έναν καθαρό διαχωρισμό των ανησυχιών (SoC).
  • Όλες οι κλάσεις και τα αντικείμενα είναι ανεξάρτητα μεταξύ τους, ώστε να μπορείτε να τα δοκιμάσετε ξεχωριστά.
  • Το MVC επιτρέπει τη λογική ομαδοποίηση των σχετικών ενεργειών σε έναν ελεγκτή μαζί.

Πλεονεκτήματα του MVVM

Εδώ, είναι τα πλεονεκτήματα/πλεονεκτήματα του MVVM

  • Η επιχειρηματική λογική αποσυνδέεται από το Ul
  • Εύκολο στη συντήρηση και δοκιμή
  • Εύκολο στην επαναχρησιμοποίηση εξαρτημάτων
  • Αρχιτεκτονική χαλαρής σύζευξης: Το MVVM κάνει την αρχιτεκτονική της εφαρμογής σας τόσο χαλαρά συζευγμένη.
  • Μπορείτε να γράψετε περιπτώσεις δοκιμής μονάδας τόσο για το μοντέλο προβολής όσο και για το επίπεδο μοντέλου χωρίς να χρειάζεται να αναφέρετε την προβολή».

Μειονεκτήματα του MVC

Εδώ, είναι τα μειονεκτήματα/μειονεκτήματα του MVC

  • Η επιχειρηματική λογική αναμειγνύεται με το Ul
  • Δύσκολη η επαναχρησιμοποίηση και η εφαρμογή δοκιμών
  • Δεν υπάρχει επίσημη υποστήριξη επικύρωσης
  • Αυξημένη πολυπλοκότητα και αναποτελεσματικότητα δεδομένων
  • Η δυσκολία χρήσης MVC με τη σύγχρονη διεπαφή χρήστη
  • Υπάρχει ανάγκη για πολλούς προγραμματιστές να διεξάγουν παράλληλο προγραμματισμό.
  • Απαιτείται γνώση πολλαπλών τεχνολογιών.

Μειονεκτήματα του MVVM

Εδώ, είναι τα μειονεκτήματα/μειονεκτήματα του MVVM

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