Οδηγός MVC Framework για αρχάριους: Τι είναι, Archiδομή & Παράδειγμα

Τι είναι το MVC Framework;

The Model-View-Controller (MVC) Το πλαίσιο είναι ένα αρχιτεκτονικό μοτίβο που διαχωρίζει μια εφαρμογή σε τρία κύρια λογικά στοιχεία Model, View και Controller. Εξ ου και η συντομογραφία MVC. Κάθε στοιχείο αρχιτεκτονικής έχει κατασκευαστεί για να χειρίζεται συγκεκριμένη πτυχή ανάπτυξης μιας εφαρμογής. Το MVC διαχωρίζει την επιχειρηματική λογική και το επίπεδο παρουσίασης το ένα από το άλλο. Χρησιμοποιήθηκε παραδοσιακά για γραφικές διεπαφές χρήστη (GUIs) για επιτραπέζιους υπολογιστές. Σήμερα, η αρχιτεκτονική MVC στην τεχνολογία web έχει γίνει δημοφιλής για το σχεδιασμό εφαρμογών Ιστού καθώς και εφαρμογών για κινητά.

Ιστορία του MVC

  • Η αρχιτεκτονική MVC συζητήθηκε για πρώτη φορά το 1979 από τον Trygve Reenskaug
  • Το μοντέλο MVC εισήχθη για πρώτη φορά το 1987 στη γλώσσα προγραμματισμού Smalltalk.
  • Το MVC έγινε αποδεκτό για πρώτη φορά ως γενική έννοια, σε ένα άρθρο του 1988
  • Τον τελευταίο καιρό, το μοτίβο MVC χρησιμοποιείται ευρέως σε σύγχρονες διαδικτυακές εφαρμογές

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

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

MVC Archiδομή

Ακολουθεί η λεπτομερής αρχιτεκτονική του πλαισίου MVC:

MVC Archiδομή
MVC Archiδιάγραμμα δομής

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

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

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

Προβολή

Προβολή είναι εκείνο το τμήμα της εφαρμογής που αντιπροσωπεύει την παρουσίαση δεδομένων.

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

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

ελεγκτής

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

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

Μοντέλο

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

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

Παραδείγματα MVC

Ας δούμε παράδειγμα Model View Controller από την καθημερινή ζωή:

Παράδειγμα 1

Παραδείγματα MVC

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

Σε αυτό το παράδειγμα αρχιτεκτονικής MVC,

View= You
Waiter= Controller
Cook= Model
Refrigerator= Data

Ας δούμε ένα ακόμη παράδειγμα μοντέλου MVC,

Παράδειγμα 2

Παραδείγματα MVC

Ο μηχανισμός οδήγησης αυτοκινήτου είναι ένα άλλο παράδειγμα του μοντέλου MVC.

  • Κάθε αυτοκίνητο αποτελείται από τρία κύρια μέρη.
  • Προβολή= Διεπαφή χρήστη: (Μοχλός ταχυτήτων, πάνελ, τιμόνι, φρένο κ.λπ.)
  • Ελεγκτής- Μηχανισμός (Κινητήρας)
  • Μοντέλο-Αποθήκευση (ρεζερβουάρ βενζίνης ή ντίζελ)

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

Δημοφιλή πλαίσια web MVC

Εδώ, είναι μια λίστα με μερικά δημοφιλή πλαίσια MVC:

Πλεονεκτήματα του MVC: Βασικά πλεονεκτήματα

Ακολουθούν τα κύρια οφέλη από τη χρήση της αρχιτεκτονικής MVC:

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

Μειονεκτήματα της χρήσης MVC

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

3-επίπεδο Architecture εναντίον MVC Archiδομή

Παράμετρος 3-Tier Archiδομή MVC Archiδομή
Επικοινωνία Αυτός ο τύπος μοτίβου αρχιτεκτονικής δεν επικοινωνεί ποτέ απευθείας με το επίπεδο δεδομένων. Όλα τα επίπεδα επικοινωνούν απευθείας χρησιμοποιώντας τοπολογία τριγώνου.
Χρήση 3-επίπεδο: χρησιμοποιείται ευρέως σε εφαρμογές web όπου ο πελάτης, τα επίπεδα δεδομένων και το ενδιάμεσο λογισμικό εκτελούνται σε φυσικά ξεχωριστές πλατφόρμες. Χρησιμοποιείται γενικά σε εφαρμογές που εκτελούνται σε έναν ενιαίο σταθμό εργασίας γραφικών.

Σύνοψη

  • Το MVC είναι ένα αρχιτεκτονικό μοτίβο που χωρίζει μια εφαρμογή σε 1) Μοντέλο, 2) Προβολή και 3) Ελεγκτή
  • Μοντέλο: Περιλαμβάνει όλα τα δεδομένα και τη σχετική λογική του
  • Προβολή: Παρουσιάστε δεδομένα στον χρήστη ή χειρίζεται την αλληλεπίδραση με τον χρήστη
  • Ελεγκτής: Μια διεπαφή μεταξύ των στοιχείων Model και View
  • Η αρχιτεκτονική MVC συζητήθηκε για πρώτη φορά το 1979 από τον Trygve Reenskaug
  • Αρχιτεκτονική MVC σε Java είναι ένα εξαιρετικά ελεγχόμενο, επεκτάσιμο και βύσμα πλαίσιο
  • Μερικά δημοφιλή πλαίσια MVC είναι τα Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP κ.λπ.