Ποιες είναι οι MVP και MVC και ποια είναι η διαφορά;

ψήφοι
1k

Όταν ψάχνετε πέρα από το RAD (drag-drop και διαμόρφωση) τρόπος για την οικοδόμηση διεπαφές χρήστη που πολλά εργαλεία που ενθαρρύνουν που είναι πιθανό να συναντήσετε τρία σχεδιαστικά πρότυπα που ονομάζεται Model-View-Controller , Model-View-Παρουσιαστής και Model-View-ViewModel . Η ερώτησή μου έχει τρία μέρη για να:

  1. Ποια θέματα αυτά τα σχέδια αντιμετώπισης;
  2. Πώς είναι παρόμοια;
  3. Πώς είναι διαφορετικοί?
Δημοσιεύθηκε 05/08/2008 στις 11:06
πηγή χρήστη
Σε άλλες γλώσσες...                            


25 απαντήσεις

ψήφοι
1k

Model-View-παρουσιαστή

Σε MVP , ο παρουσιαστής περιέχει την επιχειρηματική λογική UI για την προβολή. Όλες οι επικλήσεις από την Προβολή εκπρόσωπος άμεσα με παρουσιαστή. Ο παρουσιαστής είναι επίσης αποσυνδεδεμένη απ 'ευθείας από την Προβολή και μιλάει σε αυτό μέσω μιας διεπαφής. Αυτό γίνεται για να επιτραπεί διακωμώδηση του View σε μια δοκιμή μονάδα. Ένα κοινό χαρακτηριστικό των MVP είναι ότι πρέπει να είναι πολύ αμφίδρομη αποστολή εκεί. Για παράδειγμα, όταν κάποιος κάνει κλικ στο κουμπί «Αποθήκευση», οι χειρισμού συμβάντων συνέδρους με τη μέθοδο του παρουσιαστή «OnSave». Όταν η αποθήκευση ολοκληρωθεί, ο παρουσιαστής τότε θα καλέσουμε τη θέα μέσα από τη διασύνδεσή της, έτσι ώστε η θέα μπορεί να εμφανίσει ότι η αποθήκευση έχει ολοκληρωθεί.

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

Δύο πρωτογενείς διακυμάνσεις

Παθητική Θέα: Η θέα είναι τόσο χαζή όσο το δυνατόν και περιέχει σχεδόν μηδενική λογική. Το Presenter είναι ένα μέσο άτομο που μιλά για την Προβολή και το μοντέλο. Η θέα και το μοντέλο είναι πλήρως θωρακισμένο ένα από το άλλο. Το μοντέλο μπορεί να αυξήσει τα γεγονότα, αλλά ο παρουσιαστής συμφωνεί με αυτούς για την ενημέρωση της προβολής. Στην παθητική Προβολή υπάρχει δεσμευτική υπάρχουν άμεσες δεδομένων, αντί η θέα εκθέτει ιδιότητες setter που χρησιμοποιεί ο παρουσιαστής για να ρυθμίσετε τα δεδομένα. Όλες κατάσταση διαχείριση του παρουσιαστή και όχι της προβολής.

  • Pro: μέγιστη επιφάνεια δοκιμαστικότητα? καθαρό διαχωρισμό της Προβολή και Μοντέλο
  • Con: περισσότερη εργασία (για παράδειγμα, όλες οι ιδιότητες setter), όπως κάνετε όλες τις δεσμευτικές τον εαυτό σας δεδομένα.

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

  • Pro: με τη μόχλευση DataBinding την ποσότητα του κώδικα μειώνεται.
  • Con: υπάρχει λιγότερο ελέγξιμες επιφάνειας (λόγω της δέσμευσης των δεδομένων), και υπάρχει λιγότερη ενθυλάκωση στην Προβολή αφού μιλά απευθείας με το Μοντέλο.

Model-View-Controller

Στο MVC , ο ελεγκτής είναι υπεύθυνος για τον προσδιορισμό των Προβολή για να εμφανιστεί ως απάντηση σε οποιαδήποτε ενέργεια ακόμα και όταν τα φορτία εφαρμογής. Αυτό διαφέρει από MVP όπου δράσεων διαδρομή μέσα από το View to the παρουσιαστή. Σε MVC, κάθε ενέργεια στην Προβολή συσχετίζεται με μια κλήση σε έναν ελεγκτή μαζί με μια ενέργεια. Στο διαδίκτυο κάθε δράση περιλαμβάνει μια κλήση σε μια διεύθυνση URL από την άλλη πλευρά του οποίου υπάρχει ένας ελεγκτής ο οποίος απαντά. Από τη στιγμή που Ελεγκτής έχει ολοκληρώσει την επεξεργασία της, θα επιστρέψει τη σωστή προβολή. Η σειρά συνεχίζεται με τον τρόπο αυτό καθ 'όλη τη διάρκεια της εφαρμογής:

    Δράση στην Προβολή
        -> Πρόσκληση προς τον ελεγκτή
        -> Logic Controller
        -> Ελεγκτής επιστρέφει το View.

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

παρουσίαση Μοντέλο

Ένα άλλο σχέδιο για να εξετάσουμε είναι η παρουσίαση μοντέλο μοτίβο. Σε αυτό το μοτίβο δεν υπάρχει παρουσιαστή. Αντ 'αυτού η θέα συνδέεται άμεσα με την παρουσίαση μοντέλο. Η παρουσίαση μοντέλο είναι ένα μοντέλο κατασκευασμένο ειδικά για την προβολή. Αυτό σημαίνει ότι αυτό το μοντέλο μπορεί να εκθέσει τις ιδιότητες που ποτέ δεν θα έβαζε σε ένα μοντέλο τομέα, δεδομένου ότι θα αποτελούσε παραβίαση του διαχωρισμού-of-ανησυχίες. Στην περίπτωση αυτή, η παρουσίαση μοντέλο συνδέεται με το μοντέλο τομέα, και να εγγραφείτε σε εκδηλώσεις που προέρχονται από αυτό το μοντέλο. Η Θέα στη συνέχεια συμφωνεί με τα γεγονότα που προέρχονται από το μοντέλο Παρουσίαση και ενημερώσεις ίδια αναλόγως. Η παρουσίαση μοντέλο μπορεί να εκθέσει τις εντολές που χρησιμοποιεί η άποψη για την επίκληση ενέργειες. Το πλεονέκτημα αυτής της προσέγγισης είναι ότι μπορείτε να αφαιρέσετε ουσιαστικά τον κώδικα πίσω από συνολικά ως ο πρωθυπουργός συμπυκνώνει πλήρως το σύνολο της συμπεριφοράς για την προβολή. Αυτό το πρότυπο είναι ένα πολύ ισχυρό υποψήφιο για χρήση σε εφαρμογές WPF και είναι επίσης ονομάζεται Model-View-ViewModel .

Υπάρχει ένα άρθρο του MSDN για την παρουσίαση μοντέλο και ένα τμήμα του σύνθετου Οδηγίες Εφαρμογής για WPF (πρώην Prism) για Χωρισμένος Πρότυπα Παρουσίασης

Απαντήθηκε 19/09/2008 στις 13:46
πηγή χρήστη

ψήφοι
381

Έχω blogged γι 'αυτό πριν από λίγο καιρό, αναφέροντας σε εξαιρετική θέση Todd Snyder για τη διαφορά μεταξύ των δύο :

Εδώ είναι οι βασικές διαφορές μεταξύ των προτύπων:

MVP μοτίβο

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

MVC Pattern

  • Ελεγκτής βασίζονται σε συμπεριφορές και μπορεί να μοιραστεί σε όλη απόψεις
  • Μπορεί να είναι υπεύθυνος για τον καθορισμό που βλέπουν προς εμφάνιση

Είναι η καλύτερη εξήγηση στο διαδίκτυο θα μπορούσα να βρω.

Απαντήθηκε 05/08/2008 στις 11:21
πηγή χρήστη

ψήφοι
358

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

MVC

MVC

MVP

εισάγετε περιγραφή της εικόνας εδώ

Απαντήθηκε 06/07/2013 στις 23:18
πηγή χρήστη

ψήφοι
202

Εδώ είναι οι εικόνες που αντιπροσωπεύουν τη ροή της επικοινωνίας

εισάγετε περιγραφή της εικόνας εδώ

εισάγετε περιγραφή της εικόνας εδώ

Απαντήθηκε 12/09/2014 στις 21:47
πηγή χρήστη

ψήφοι
147

MVP είναι δεν είναι απαραίτητα ένα σενάριο όπου η θέα είναι υπεύθυνος (βλ MVP Taligent για παράδειγμα).
Θεωρώ ότι είναι λυπηρό το γεγονός ότι οι άνθρωποι εξακολουθούν να κηρύττουν αυτό ως ένα πρότυπο (Δείτε υπεύθυνος), σε αντίθεση με ένα αντι-πρότυπο, δεδομένου ότι έρχεται σε αντίθεση με «Είναι απλά μια άποψη» (πραγματική Programmer). «Είναι απλά μια άποψη», δηλώνει ότι η τελική άποψη εμφανίζεται στο χρήστη είναι ένα δευτερεύον μέλημα της εφαρμογής. MVP μοτίβο της Microsoft καθιστά την επαναχρησιμοποίηση του Εμφανίσεις πολύ πιο δύσκολη και βολική δικαιολογία σχεδιαστής της Microsoft από την ενθάρρυνση κακή πρακτική.

Για να είμαι απόλυτα ειλικρινής, νομίζω ότι οι σχετικές ανησυχίες της MVC ισχύει και για οποιαδήποτε εφαρμογή MVP και οι διαφορές είναι σχεδόν εξ ολοκλήρου σημασιολογική. Εφ 'όσον ακολουθείτε το διαχωρισμό των ανησυχιών μεταξύ της προβολής (που εμφανίζει τα δεδομένα), τον ελεγκτή (που αρχικοποιεί και ελέγχει την αλληλεπίδραση του χρήστη) και το μοντέλο (τα υποκείμενα των δεδομένων και / ή υπηρεσίες)), τότε είστε επιτυγχάνοντας τα οφέλη της MVC . Αν επιτυγχάνοντας τα οφέλη τότε ποιος νοιάζεται πραγματικά αν το σχέδιό σας είναι MVC, MVP ή Επίβλεψη ελεγκτή; Το μόνο πραγματικό σχέδιο παραμένει ως MVC, τα υπόλοιπα είναι απλά διαφορετικές γεύσεις του.

Σκεφτείτε αυτό το άκρως συναρπαστικό άρθρο που παραθέτει διεξοδικά μια σειρά από αυτές τις διαφορετικές εφαρμογές. Μπορείτε να σημειωθεί ότι είναι όλα βασικά να κάνει το ίδιο πράγμα, αλλά λίγο διαφορετικά.

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

Απαντήθηκε 25/08/2008 στις 22:22
πηγή χρήστη

ψήφοι
85

MVP: η θέα είναι υπεύθυνος.

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

MVC: ο ελεγκτής είναι υπεύθυνος.

Ο ελεγκτής έχει δημιουργηθεί ή πρόσβαση βασίζεται σε κάποια εκδήλωση / αιτήματος. Ο ελεγκτής, στη συνέχεια, δημιουργεί την κατάλληλη προβολή και αλληλεπιδρά με το μοντέλο για να ρυθμίσετε περαιτέρω την άποψη. Βράζει κάτω: ο ελεγκτής δημιουργεί και διαχειρίζεται την άποψη? η θέα είναι slave στον ελεγκτή. Η άποψη αυτή δεν ξέρετε για τον ελεγκτή.

Απαντήθηκε 06/08/2008 στις 23:51
πηγή χρήστη

ψήφοι
58

εισάγετε περιγραφή της εικόνας εδώ

MVC (Model View Controller)

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

MVP (Model View Παρουσιαστής)

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

Για περισσότερες Αναφορά

Απαντήθηκε 20/12/2015 στις 02:10
πηγή χρήστη

ψήφοι
31

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

Όταν χρησιμοποιείτε παθητική, Θέα σας συνήθως εφαρμόζουν μία λεπτή διασύνδεση με ιδιότητες χαρτογράφηση περισσότερο ή λιγότερο άμεσα με την υποκείμενη UI widget. Για παράδειγμα, μπορεί να έχετε ένα ICustomerView με ιδιότητες όπως το όνομα και τη διεύθυνση.

εφαρμογή σας μπορεί να μοιάζει κάπως έτσι:

public class CustomerView : ICustomerView
{
    public string Name
    { 
        get { return txtName.Text; }
        set { txtName.Text = value; }
    }
}

Κατηγορία Παρουσιαστής σας θα μιλήσετε με το μοντέλο και το «χάρτη» που στην προβολή. Αυτή η προσέγγιση ονομάζεται «παθητική View». Το όφελος είναι ότι η θέα είναι εύκολο να ελεγχθεί, και είναι πιο εύκολο να μετακινηθείτε μεταξύ των πλατφορμών UI (Web, Windows / XAML, κλπ). Το μειονέκτημα είναι ότι δεν μπορούν να αξιοποιήσουν τα πράγματα όπως databinding (το οποίο είναι πολύ ισχυρό σε πλαίσια όπως WPF και Silverlight ).

Η δεύτερη γεύση του MVP είναι η Επίβλεψη Controller. Σε αυτή την περίπτωση View σας μπορεί να έχει μια ιδιότητα που ονομάζεται Πελάτη, η οποία και πάλι είναι databound στις UI widgets. Δεν χρειάζεται να σκεφτείτε για το συγχρονισμό και μικρο-διαχείριση της άποψη, και ο ελεγκτής Επίβλεψη μπορεί να παρέμβει και να βοηθήσει όταν χρειάζεται, για παράδειγμα, με compled λογική αλληλεπίδραση.

Το τρίτο «γεύση» του MVP (ή κάποιος θα το ξεχωριστό μοτίβο καλέστε ίσως) είναι το Presentation Model (ή μερικές φορές αναφέρεται Model-View-ViewModel). Σε σύγκριση με το σας MVP «συγχώνευση» το Μ και το P σε μία τάξη. Έχετε αντικείμενο των πελατών σας, η οποία UI widgets σας δεδομένα βέβαιο ότι, αλλά έχετε επίσης πρόσθετες UI-spesific πεδία όπως «IsButtonEnabled», ή «IsReadOnly», κ.λπ.

Νομίζω ότι ο καλύτερος πόρος που έχω βρεθεί στην αρχιτεκτονική UI είναι η σειρά των θέσεων blog γίνεται από τον Jeremy Miller πάνω στο The Φτιάξτε τη δική σας CAB Σειρά Πίνακα Περιεχομένων . Κάλυψε όλες τις γεύσεις των MVP και έδειξε C # κώδικα για την εφαρμογή τους.

Έχω, επίσης, blogged σχετικά με το πρότυπο Model-View-ViewModel στο πλαίσιο του Silverlight πάνω σε YouCard Re-επισκέφθηκε: Εφαρμογή του σχεδίου ViewModel .

Απαντήθηκε 08/08/2008 στις 06:55
πηγή χρήστη

ψήφοι
31
  • MVP = Model-View-Presenter
  • MVC = Model-View-Controller

    1. Και τα δύο πρότυπα παρουσίασης. Χωρίζουν τις εξαρτήσεις ανάμεσα σε ένα μοντέλο (σκεφτείτε αντικείμενα Τομέα), / ιστοσελίδα στην οθόνη σας (το View), και πώς UI σας πρέπει να συμπεριφέρεται (Παρουσιαστής / Controller)
    2. Είναι αρκετά παρόμοια σε σύλληψη, λαοί προετοιμαστεί ο παρουσιαστής / Controller διαφορετικά, ανάλογα με το γούστο.
    3. Ένα μεγάλο άρθρο για τις διαφορές είναι εδώ . Το πιο αξιοσημείωτο είναι ότι MVC μοτίβο έχει το μοντέλο ενημέρωση της προβολής.
Απαντήθηκε 05/08/2008 στις 11:22
πηγή χρήστη

ψήφοι
15

Και τα δύο αυτά πλαίσια ως στόχο να διαχωρίσει τις ανησυχίες - για παράδειγμα, η αλληλεπίδραση με μια πηγή δεδομένων (μοντέλο), λογική της εφαρμογής (ή μετατρέποντας τα δεδομένα σε χρήσιμες πληροφορίες) (Controller / Παρουσιαστής) και τον κωδικό της οθόνης (View). Σε ορισμένες περιπτώσεις, το μοντέλο μπορεί επίσης να χρησιμοποιηθεί για να μετατρέψει ένα αρχείο προέλευσης δεδομένων σε ένα υψηλότερο αφαίρεση επίπεδο. Ένα καλό παράδειγμα είναι το έργο MVC Storefront .

Υπάρχει μια συζήτηση εδώ σχετικά με τις διαφορές μεταξύ των MVC vs MVP.

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

MVP σχέδια έχουν το Παρουσιαστής πρόσβαση στο μοντέλο και να αλληλεπιδρούν με τη θέα.

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

Για να πάρετε ίσως μια ιδέα της διάκρισης ASP.NET MVC από MVP, δείτε αυτή την παρουσίαση MIX από τον Scott Hanselman.

Απαντήθηκε 05/08/2008 στις 11:20
πηγή χρήστη

ψήφοι
12

Και τα δύο μοντέλα προσπαθούν να διαχωρίσουν την παρουσίαση και την επιχειρηματική λογική, την αποσύνδεση της επιχειρηματικής λογικής από τις πτυχές UI

Αρχιτεκτονικά, MVP είναι Page Ελεγκτής προσέγγιση που βασίζεται όπου MVC είναι Front Controller προσέγγιση που βασίζεται. Αυτό σημαίνει ότι σε MVP του κύκλου τυποποιημένο έντυπο ιστοσελίδα ζωή είναι μόνο ενισχύεται από την εξαγωγή του επιχειρηματική λογική από τον κώδικα πίσω. Με άλλα λόγια, η σελίδα είναι το αίτημα http ένα σέρβις. Με άλλα λόγια, MVP IMHO είναι μορφή ιστού εξελικτική τύπο αξεσουάρ. MVC στην άλλη αλλάζει εντελώς το παιχνίδι, διότι η αίτηση παίρνει υποκλαπούν από την κατηγορία ελέγχου πριν από τη φόρτωση της σελίδας, η επιχειρηματική λογική εκτελείται εκεί και στη συνέχεια στο τελικό αποτέλεσμα του ελέγχου επεξεργασίας των δεδομένων ακριβώς που αποτελούν αντικείμενο ντάμπινγκ στη σελίδα ( «προβολή») Σε ότι αίσθηση, MVC εμφάνιση (τουλάχιστον για μένα) πολύ για να Επίβλεψη γεύση ελεγκτή του MVP ενισχυμένη με κινητήρα δρομολόγησης

Και οι δύο έχουν τη δυνατότητα TDD και έχουν μειονεκτήματα και άνω πλευρές.

Απόφαση για το πώς να επιλέξετε ένα από αυτά IMHO θα πρέπει να βασίζεται σε πόσο χρόνο ένα επενδύεται σε ASP NET ηλεκτρονική φόρμα είδος της ανάπτυξης ιστοσελίδων. Αν κάποιος θα θεωρούσε τον εαυτό του καλό σε φόρμες ιστού, θα ήθελα να προτείνω MVP. Αν κάποιος θα νιώσετε όχι και τόσο άνετα σε πράγματα όπως τον κύκλο της σελίδας ζωής κλπ MVC θα μπορούσε να είναι ένας τρόπος για να πάτε εδώ.

Εδώ είναι ένα ακόμη blog post σύνδεσμο δίνει λίγο περισσότερες λεπτομέρειες για το θέμα αυτό

http://blog.vuscode.com/malovicn/archive/2007/12/18/model-view-presenter-mvp-vs-model-view-controller-mvc.aspx

Απαντήθηκε 21/09/2008 στις 13:32
πηγή χρήστη

ψήφοι
11

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

Η συνδυασμένη μοτίβο

Υπάρχει επίσης μια πλήρης σύγκριση των MVC, MVP και MVVM εδώ

Απαντήθηκε 13/03/2017 στις 05:54
πηγή χρήστη

ψήφοι
9

Κάτι που δεν παίρνουν το λόγο τα δεδομένα δέσμευσης πρέπει να μειωθεί ελεγξιμότητα. Θέλω να πω, η άποψη αυτή ουσιαστικά βασίζεται στα ανοικτά του τι θα μπορούσε να θεωρηθεί ως μία ή περισσότερες προβολές βάση δεδομένων, έτσι δεν είναι; Μπορεί να υπάρχουν συνδέσεις μεταξύ των γραμμών σε διάφορες απόψεις. Εναλλακτικά, μπορούμε να μιλήσουμε object-oriented αντί για σχεσιακές, αλλά στην πραγματικότητα δεν αλλάζει τίποτα - έχουμε ακόμα μία ή περισσότερες διακριτές οντότητες δεδομένων.

Αν δείτε τον προγραμματισμό ως δομές δεδομένων + αλγορίθμους, τότε δεν θα ήταν καλύτερο να έχουν οι δομές δεδομένων γίνεται ρητή όσο το δυνατόν, και στη συνέχεια να αναπτύξουν αλγόριθμους που ο καθένας εξαρτάται από το μικρό κομμάτι των δεδομένων όσο το δυνατόν, με ελάχιστη σύζευξη μεταξύ των αλγορίθμων ;

Αισθάνομαι πολύ Java-esque σχέδια FactoryFactoryFactory σκέψη εδώ - θέλουμε να έχουμε πολλαπλές όψεις, πολλά μοντέλα, πολλαπλούς βαθμούς ελευθερίας σε όλη τη χώρα. Είναι σχεδόν σαν να είναι η κινητήρια δύναμη πίσω από MVC και MVP και εταζέρα. Τώρα, επιτρέψτε μου να ρωτήσω το εξής: πόσο συχνά είναι το κόστος που πληρώνετε για αυτό (και εκεί σίγουρα είναι ένα κόστος) αξίζει τον κόπο;

Βλέπω, επίσης, καμία συζήτηση για το πώς να διαχειρίζονται αποτελεσματικά κατάσταση μεταξύ των αιτημάτων HTTP. Δεν έχουμε μάθει από τα λειτουργικά τους λαούς (και τα ογκώδη λάθη που έγιναν από την επιτακτική ανάγκη μακαρόνια) ότι η κατάσταση είναι κακό και πρέπει να ελαχιστοποιείται (και όταν χρησιμοποιούνται, πρέπει να είναι καλά κατανοητός);

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

Απαντήθηκε 28/01/2009 στις 22:11
πηγή χρήστη

ψήφοι
8

Υπάρχουν πολλές απαντήσεις στο ερώτημα, αλλά ένιωσα ότι υπάρχει ανάγκη για κάποια πραγματικά απλή απάντηση με σαφήνεια τη σύγκριση των δύο. Εδώ είναι η συζήτηση που έκανα όταν ένας χρήστης ψάχνει για ένα όνομα ταινίας σε MVP και MVC app:

Χρήστης: Κάντε κλικ κλικ ...

Προβολή : Ποιος είναι αυτός; [ MVP | MVC ]

Χρήστης: Απλά κάνετε κλικ στο κουμπί αναζήτησης ...

Θέα : Εντάξει, κρατήστε σε ένα λεπτό .... [ MVP | MVC ]

( Δείτε την κλήση του παρουσιαστή | Controller ...) [ MVP | MVC ]

Θέα : Γεια σου Παρουσιαστής | Controller , ο χρήστης έχει μόλις κάνει κλικ στο κουμπί αναζήτησης, τι πρέπει να κάνω; [ MVP | MVC ]

παρουσιαστής | Ελεγκτής : Γεια σου View , είναι κάθε όρο αναζήτησης σε αυτή τη σελίδα εκεί; [ MVP | MVC ]

Θέα : Ναι, ... εδώ είναι ... «πιάνο» [ MVP | MVC ]

Παρουσιαστής : Ευχαριστώ Θέα , ... εν τω μεταξύ Ψάχνω έως τον όρο αναζήτησης στο μοντέλο , παρακαλούμε να δείξει τον / την μια γραμμή προόδου [ MVP | MVC ]

( Παρουσιαστής | ελεγκτής καλεί το μοντέλο ...) [ MVP | MVC ]

παρουσιαστής | Ελεγκτής : Γεια σου μοντέλο , Έχετε κάποια αγώνα για αυτόν τον όρο αναζήτησης ?: «πιάνο» [ MVP | MVC ]

Μοντέλο : Γεια σου Παρουσιαστής | Ελεγκτή , επιτρέψτε μου να ελέγξει ... [ MVP | MVC ]

( Μοντέλο κάνει ένα ερώτημα στη βάση δεδομένων ταινία ...) [ MVP | MVC ]

( Μετά από λίγο ... )

-------------- Αυτό είναι όπου MVP και MVC αρχίζουν να αποκλίνουν ---------------

Μοντέλο : Βρήκα μια λίστα για σας, παρουσιαστής , εδώ είναι το JSON «[{ "name": "Δασκάλα του Πιάνου", "έτος": 2001}, { "name": "Πιάνο", "έτος": 1993} ]»[ MVP ]

Μοντέλο : Δεν υπάρχει διαθέσιμη κάποια αποτελέσματα, ελεγκτή . Έχω δημιουργήσει ένα μεταβλητό πεδίο στο παράδειγμα μου και γέμισε με το αποτέλεσμα. Το όνομά του είναι «searchResultsList» [ MVC ]

( Παρουσιαστής | Controller χάρη μοντέλο και παίρνει πίσω στον View ) [ MVP | MVC ]

Παρουσιαστής : Ευχαριστώ για την αναμονή Θέα , βρήκα μια λίστα που ταιριάζουν αποτελεσμάτων για εσάς και τους τοποθετημένα σε ένα ευπαρουσίαστο μορφή: [ «Δασκάλα του Πιάνου 2001», «Piano 1993»]. Παρακαλούμε να το δείξει στο χρήστη σε μια κατακόρυφη λίστα. Επίσης, μπορείτε να αποκρύψετε τη γραμμή προόδου τώρα [ MVP ]

Ελεγκτής : Ευχαριστώ για την αναμονή Θέα , ζήτησα Μοντέλο για το ερώτημα αναζήτησης. Λέει ότι έχει βρει μια λίστα που ταιριάζουν αποτελεσμάτων και αποθηκεύονται τους σε μια μεταβλητή με όνομα «searchResultsList» στο εσωτερικό της πρωτοβουλία. Μπορείτε να το πάρετε από εκεί. Επίσης, μπορείτε να αποκρύψετε τη γραμμή προόδου τώρα [ MVC ]

Θέα : Σας ευχαριστώ πολύ Παρουσιαστής [ MVP ]

Θέα : Σας ευχαριστούμε «ελεγκτής» [ MVC ] (Τώρα η θέα είναι η ίδια αμφισβήτηση: Πώς θα πρέπει να παρουσιάσει τα αποτελέσματα που παίρνω από το μοντέλο ; στο χρήστη Σε περίπτωση που το έτος παραγωγής της ταινίας έρχεται πρώτη ή η τελευταία ... Θα πρέπει αυτό; να είναι σε κάθετη ή οριζόντια λίστα; ...)

Σε περίπτωση που σας ενδιαφέρει, έχω γράψει μια σειρά άρθρων που ασχολούνται με την εφαρμογή αρχιτεκτονικά σχέδια (MVC, MVP, MVVP, καθαρή αρχιτεκτονική, ...) συνοδεύεται από Github repo εδώ . Παρόλο που το δείγμα είναι γραμμένο για το Android, οι βασικές αρχές που μπορούν να εφαρμοστούν σε οποιοδήποτε μέσο.

Απαντήθηκε 06/04/2018 στις 13:51
πηγή χρήστη

ψήφοι
8

Σε android δεν υπάρχει έκδοση του MVC που είναι MVP: Τι είναι MVP;

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

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

Ένα παράδειγμα για MVP είναι https://github.com/antoniolg/androidmvp

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

Κλασικό MVC υπήρχαν σε μια εποχή που κάθε έλεγχος / gadget που υπήρχε στην οθόνη θεωρήθηκε χαζός και κάθε ελέγχου σε συνδυασμό με το δικό του ελεγκτή της για τη διαχείριση των αλληλεπιδράσεων των χρηστών που συμβαίνουν σε αυτές. Έτσι, αν υπάρχουν 10 συσκευές, τότε 10 ελεγκτές πρέπει να υπάρχει. Σε αυτό το σενάριο, κάθε συσκευή υπολογίζεται ως σκοπό. Η έλευση των συστημάτων GUI των Windows αλλάξει αυτή την εικόνα. Η σχέση ελέγχου-Controller κατέστη άνευ αντικειμένου. Έλεγχοι κέρδισε τη νοημοσύνη για να ανταποκριθεί στις ενέργειες που ξεκίνησαν από το χρήστη. Στον κόσμο των Windows, η άποψη είναι μια επιφάνεια στην οποία υπάρχουν όλες οι έλεγχοι / gadgets, ως εκ τούτου, υπάρχει ανάγκη για ένα μόνο ελεγκτή. Δείτε μπορούν να λάβουν τα γεγονότα και να φτάσει για τους ελεγκτές να βοηθήσει να κάνει περαιτέρω επεξεργασία.

Δείγμα κώδικα για MVC στο Android http://androidexample.com/Use_MVC_Pattern_To_Create_Very_Basic_Shopping_Cart__-_Android_Example/index.php?view=article_discription&aid=116&aaid=138

Η διαφορά μεταξύ των δύο είναι διαθέσιμη εδώ http://www.codeproject.com/Articles/288928/Differences-between-MVC-and-MVP-for-Beginners

Τώρα Από την εμπειρία μου, θα πρέπει να χρησιμοποιήσετε MVP για το έργο το Android βάση, επειδή βελτιωμένη έκδοση του MVC μοντέλο.

Απαντήθηκε 02/07/2016 στις 07:15
πηγή χρήστη

ψήφοι
8

Έχω χρησιμοποιήσει τόσο MVP και MVC και αν εμείς ως προγραμματιστές τείνουν να εστιάζουν στις τεχνικές διαφορές των δύο μοντέλων το σημείο MVP στο IMHO είναι πολύ πιο σχετίζεται με την ευκολία της έγκρισης από οτιδήποτε άλλο.

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

Η εμπειρία μου μου λέει ότι κινείται μια ομάδα από φόρμες ιστού για MVP και στη συνέχεια από MVP στο MVC είναι σχετικά εύκολο? μετάβαση από φόρμες ιστού σε MVC είναι πιο δύσκολο.

Αφήνω εδώ μια σύνδεση με μια σειρά άρθρων που ένας φίλος μου έχει δημοσιευθεί για MVP και MVC.

http://www.qsoft.be/post/Building-the-MVP-StoreFront-Gutthrie-style.aspx

Απαντήθηκε 02/01/2009 στις 11:35
πηγή χρήστη

ψήφοι
7

Κατά MVP η θέα αντλεί στοιχεία από τον παρουσιαστή η οποία αντλεί και προετοιμάζει / ομαλοποιεί τα δεδομένα από το μοντέλο, ενώ σε MVC ο ελεγκτής αντλεί δεδομένα από το μοντέλο και ρυθμίστε, από ώθηση στην προβολή.

Σε MVP μπορείτε να έχετε μια ενιαία εικόνα σε συνεργασία με πολλούς τύπους παρουσιαστές και μία παρουσιάστρια που εργάζονται με διαφορετικές πολλαπλές προβολές.

MVP συνήθως χρησιμοποιεί κάποιο είδος ενός δεσμευτικού πλαισίου, όπως το πλαίσιο δέσμευσης της Microsoft WPF ή διάφορα δεσμευτικά πλαίσια για HTML5 και Java.

Σε αυτά τα πλαίσια, το UI / HTML5 / XAML, γνωρίζει τι περιουσία του παρουσιαστή κάθε UI εμφανίζει το στοιχείο, έτσι ώστε όταν συνδέονται με σκοπό την παρουσιάστρια, η θέα αναζητά τις ιδιότητες και ξέρει πώς να επιστήσω στοιχεία από αυτούς και πώς να τα ρυθμίσετε, όταν μια τιμή δεν έχει αλλάξει στο UI από το χρήστη.

Έτσι, αν για παράδειγμα, το μοντέλο είναι ένα αυτοκίνητο, στη συνέχεια, ο παρουσιαστής είναι κάποιο είδος του παρουσιαστή αυτοκινήτου, εκθέτει τις ιδιότητες αυτοκίνητο (έτος, maker, καθίσματα, κ.λπ.) με την προβολή. Η άποψη γνωρίζει ότι το πεδίο κειμένου που ονομάζεται «αυτοκινητοβιομηχανία» πρέπει να εμφανιστεί το ακίνητο παρουσιαστή τσάι.

Στη συνέχεια, μπορεί να συνδεθεί με την άποψη πολλών διαφορετικών τύπων παρουσιαστής, όλοι πρέπει να έχουν περιουσία Maker - αυτό μπορεί να είναι ένα αεροπλάνο, τρένο ή ό, τι ποτέ, η άποψη αυτή δεν με νοιάζει. Η θέα αντλεί στοιχεία από τον παρουσιαστή - δεν έχει σημασία που - υπό την προϋπόθεση ότι εφαρμόζει μια συμφωνία διασύνδεσης.

Αυτό το πλαίσιο δέσμευσης, αν το βγαίνουν τα κάτω, είναι στην πραγματικότητα η :-) ελεγκτή

Και έτσι, μπορείτε να δείτε σε MVP ως εξέλιξη της MVC.

MVC είναι μεγάλη, αλλά το πρόβλημα είναι ότι συνήθως ελεγκτής της ανά προβολή. Ελεγκτής Ένα ξέρει πώς να ρυθμίσετε πεδία Δείτε A. Αν τώρα, θέλετε Θέα A για να εμφανίσετε τα στοιχεία του μοντέλου Β, θα πρέπει Ελεγκτής Α να γνωρίζετε το μοντέλο Β, ή θα πρέπει Ελεγκτής Α για να λάβετε ένα αντικείμενο με μια διεπαφή - που είναι σαν MVP μόνο χωρίς τις συνδέσεις, ή θα πρέπει να ξαναγράψουμε το σύνολο UI κώδικα σε ελεγκτή Β

Συμπέρασμα - MVP και MVC και οι δύο αποσυνδέεται από μοτίβα UI, αλλά MVP συνήθως χρησιμοποιεί ένα πλαίσιο δέστρες που είναι MVC κάτω. ΕΤΣΙ MVP είναι σε υψηλότερο επίπεδο από ό, αρχιτεκτονικό MVC και ένα μοτίβο περιτύλιγμα πάνω του MVC.

Απαντήθηκε 07/06/2013 στις 22:16
πηγή χρήστη

ψήφοι
6

ταπεινή σύντομη άποψή μου: MVP είναι για μεγάλες κλίμακες, και MVC για μικροσκοπικές κλίμακες. Με MVC, έχω κάποια στιγμή αισθάνονται την V και το C μπορεί να δει κανείς μια δύο όψεις ενός αδιαίρετο συστατικό μάλλον συνδέεται απ 'ευθείας με το Μ, και ένα πέφτει αναπόφευκτα σε αυτό όταν πηγαίνει κάτω-προς βραχύτερη κλίμακες, όπως έλεγχοι UI και βάσης widgets. Σε αυτό το επίπεδο λεπτομέρειας, MVP νόημα. Όταν κάποιος αντίθετα πηγαίνουν σε μεγαλύτερες κλίμακες, κατάλληλη διασύνδεση γίνεται όλο και πιο σημαντική, το ίδιο και με σαφή κατανομή των αρμοδιοτήτων, και εδώ έρχεται MVP.

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

Απαντήθηκε 20/02/2013 στις 17:55
πηγή χρήστη

ψήφοι
5

Model-View-Controller

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

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

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

εισάγετε περιγραφή της εικόνας εδώ

Model-View-παρουσιαστή

  • Το μοντέλο είναι τα δεδομένα που θα εμφανίζεται στην προβολή (διεπαφή χρήστη).
  • Η άποψη είναι μια διασύνδεση που εμφανίζει δεδομένα (το μοντέλο) και εντολές διαδρομές χρήστη (συμβάντα) στον παρουσιαστή να ασκήσει εν λόγω δεδομένα. Η άποψη αυτή έχει συνήθως μια αναφορά στο Παρουσιαστής της.
  • Ο Παρουσιαστής είναι ο «μεσάζων» (που παίζεται από τον ελεγκτή στο MVC) και έχει αναφορές σε δύο, προβολή και το μοντέλο. Παρακαλείστε να σημειώσετε ότι η λέξη «μοντέλο» είναι παραπλανητική. Θα πρέπει μάλλον να είναι επιχειρηματική λογική που ανακτά ή να χειρίζεται ένα μοντέλο . Για παράδειγμα: Εάν έχετε μια βάση δεδομένων που αποθηκεύει χρήστη σε έναν πίνακα βάσης δεδομένων και θέα σας θέλει για να εμφανιστεί μια λίστα χρηστών, τότε ο παρουσιαστής θα έχει σχέση με επιχειρηματική λογική βάση δεδομένων σας (όπως ένα DAO) από όπου ο παρουσιαστής θα ζητήσει μια λίστα των χρηστών.

Αν θέλετε να δείτε ένα δείγμα με απλή εφαρμογή μπορείτε να ελέγξετε αυτή τη θέση GitHub

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

Ποια είναι η διαφορά μεταξύ του MVC και MVP πρότυπα;

MVC Pattern

  • Ελεγκτής βασίζονται σε συμπεριφορές και μπορεί να μοιραστεί σε όλη απόψεις

  • Μπορεί να είναι υπεύθυνος για τον καθορισμό που βλέπουν στην οθόνη του (Front Controller Pattern)

MVP μοτίβο

  • Προβολή είναι πιο χαλαρά συνδεδεμένες με το μοντέλο. Ο παρουσιαστής είναι υπεύθυνη για τη σύνδεση του μοντέλου στην προβολή.

  • Ευκολότερη δοκιμή μονάδα επειδή η αλληλεπίδραση με την άποψη είναι μέσω μιας διεπαφής

  • Συνήθως δείτε σε παρουσιαστής χάρτη ένα προς ένα. Συγκρότημα απόψεις μπορεί να έχει πολλαπλά παρουσιαστές.

Απαντήθηκε 29/11/2017 στις 10:14
πηγή χρήστη

ψήφοι
3

Υπάρχουν πολλές εκδόσεις του MVC, η απάντηση είναι για το αρχικό MVC σε Smalltalk. Εν συντομία, είναι εικόνα της MVC vs MVP

Αυτή η συζήτηση droidcon NYC 2017 - Καθαρίστε το σχεδιασμό εφαρμογών με αρχιτεκτονική Εξαρτήματα αποσαφηνίζει

εισάγετε περιγραφή της εικόνας εδώ εισάγετε περιγραφή της εικόνας εδώ

Απαντήθηκε 09/09/2015 στις 02:34
πηγή χρήστη

ψήφοι
0

Υπάρχει αυτό το ωραίο βίντεο από το θείο Μπομπ όπου εξηγεί εν συντομία MVC και MVP στο τέλος.

Αυτό που νομίζω ότι είναι MVP είναι μια βελτιωμένη έκδοση του MVC όπου ουσιαστικά διαχωρίζει την ανησυχία για το πώς είστε θα δείξει τα δεδομένα που έχετε. Παρουσιαστής περιλαμβάνει κάπως την επιχειρηματική λογική του UI σας και να μιλά με μια διεπαφή που καθιστά ευκολότερο να δοκιμάσει επιχειρηματική λογική UI σας σε διαφορετικές απόψεις. MVC εξακολουθεί να μιλά μέσω των διασυνδέσεων (όρια) στα στρώματα κόλλας, αλλά δεν έχει τέτοιο περιορισμό να επιβάλει τη λογική παρουσίαση UI. Εκτός από αυτό, δεν βλέπω πραγματικά οποιαδήποτε περισσότερες διαφορές.

Απαντήθηκε 25/01/2018 στις 21:24
πηγή χρήστη

ψήφοι
0

MVP

MVP σημαίνει Μοντέλο - View- παρουσιαστή. Αυτό ήρθε να φανταστείτε στις αρχές του 2007, όπου η Microsoft εισήγαγε Smart παράθυρα πελάτη εφαρμογές.

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

Δείτε εκδήλωση δέσμευση θα υλοποιηθεί σε Παρουσιαστής από μια διεπαφή άποψη.

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

Πλεονεκτήματα: θέα έχει μόνο UI όχι οποιεσδήποτε λογικές Υψηλό επίπεδο δοκιμαστικότητα

Μειονεκτήματα: σύνθετη Bit και περισσότερη δουλειά κατά την εφαρμογή δέστρες εκδήλωση

MVC

MVC σημαίνει Model-View-Controller. Ο ελεγκτής είναι υπεύθυνος για τη δημιουργία μοντέλων και καθιστώντας απόψεων με δεσμευτικά πρότυπα.

Ο ελεγκτής είναι ο εμπνευστής και αποφασίζει ποια δείτε να καταστήσει.

Πλεονεκτήματα: Έμφαση στην Ενιαία Αρχή Ευθύνη Υψηλό επίπεδο δοκιμαστικότητα

Μειονεκτήματα: Μερικές φορές πάρα πολύ φόρτο εργασίας για τους ελεγκτές, εάν προσπαθήσετε να καταστήσει πολλαπλές προβολές στο ίδιο ελεγκτή.

Απαντήθηκε 12/01/2016 στις 04:50
πηγή χρήστη

ψήφοι
-1

Η απλούστερη απάντηση είναι πως η θέα αλληλεπιδρά με το μοντέλο. Σε MVP το μοντέλο είναι συνδεδεμένο με τον παρουσιαστή, ο οποίος είναι υπεύθυνος για την ενημέρωση του άποψη. Σε MVC το μοντέλο ενημερώνει την προβολή άμεσα.

Απαντήθηκε 16/11/2017 στις 17:32
πηγή χρήστη

ψήφοι
-2

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

  1. Ένα υπερ-πιέζεται και μια ενιαία αίτηση αποστέλλεται από το μηχάνημα του πελάτη στο διακομιστή. Ο διακομιστής απαντά στο αίτημα αυτό με Response στέλνοντας το μοντέλο αντικειμένου στον Πελάτη. (Γνωστή απλά ως «απάντηση»).
  2. Ο διακομιστής απαντά στέλνοντας ένα μοντέλο αντικειμένου (Το αρχείο HTML) στο μηχάνημα Πελάτες (γνωστή και ως πλήρης Χειραψία).
  3. Η Πελάτες περιήγησης μπορεί τώρα Render το «View» από την ανάλυση, Lexing / tokenizing, και να μετατρέψει την Object Model Markup σε ένα γραφικό περιβάλλον «Προβολή».

Θα μπορεί να συνταξιοδοτηθεί τώρα, αλλά από Gosh είναι εσείς εδώ υποστηρίζοντας και τη συζήτηση απόλυτη ανοησία. Και ειλικρινά δεν έχει σημασία αυτό που εσείς ονομάζετε μια χειραψία μεταξύ των δύο μηχανών δεν μπορεί να είναι οτιδήποτε εκτός από ένα μόνο αίτημα, ένα ενιαίο Απάντηση του αντικειμένου «μοντέλο» και, τέλος, η Πελάτες Browser καθιστώντας το «View».

Και κλείνοντας, μια θέα που δεν υπάρχει σε χειραψία. Το μοντέλο αντικειμένου είναι μόνο σήμανσης για το πρόγραμμα περιήγησης να μετατρέψετε σε γραφικό περιβάλλον Σετ Widget και Eval Μέθοδοι με τρία ή περισσότερα μοντέλα αντικειμένου. HTML, CSS και JavaScript. Και δεν έχει σημασία πόσο πολύ ο καθένας μπορεί να πει ένα διακομιστή κάνει κάτι έξω από τα συνηθισμένα είναι άλογο Dung.

Η «Server» δεν είναι η «ελεγκτής» είναι μια Directer και κατευθύνει μόνο τη απόκρισης με την αποστολή ενός αντικειμένου «Μοντέλο» Response. Browser του πελάτη (που θα ήταν η πιθανή Controller) και στη συνέχεια δημιουργεί το «View» από την Αντικείμενο «Μοντέλο» ο διακομιστής δεν έχει τίποτα να κάνει με αυτό. Η γλώσσα του υπολογιστή δεν μπορεί να μπει στο μοντέλο αντικειμένου καθόλου ούτε να μεταβιβάσει αυτό. Όλα είναι είναι ένα Markup Δημιουργός.

Το όλο χάος είναι απλώς μια πλευρά του Browser Πελάτη «ελεγκτή» που αναλύει το «μοντέλο» για να καταστήσει την «Προβολή» ή CMV ή MCV (αποστέλλονται ως μοντέλο στην πρώτη σειρά) και δεν μπορείτε να το αλλάξετε. Αλλά μπορείτε να καλέσετε απλά μια Αίτηση, Απόκριση μοντέλο αντικειμένου και Render Προβολή ή RRMV.

Απαντήθηκε 31/12/2018 στις 02:10
πηγή χρήστη

ψήφοι
-2

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

μια απλή εξίσωση του όπου

MVC Δείτε = Προβολή και παρουσιαστής του MVP

MVP Model = ελεγκτή και το μοντέλο του MVC

περισσότερες πληροφορίες ανατρέξτε σε αυτό http://includeblogh.blogspot.com.eg/2016/07/the-difference-and-relationship-between.html

Απαντήθηκε 31/07/2017 στις 10:13
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more