Πού πρέπει Προβολή & γεννηθεί Παρουσιαστής

ψήφοι
5

Καταλαβαίνω απόλυτα το σχέδιο MVP τώρα, αλλά εξακολουθούν να αγωνίζονται για να δείτε πού οι απόψεις και οι παρουσιαστές τεκμηριώθηκε. Έχω δει μερικά παραδείγματα όπου ο παρουσιαστής είναι newed στην προβολή, αλλά είναι αυτή η σωστή. Μετά την ανάγνωση ενός blog post του Jeremy Miller για την επικοινωνία μεταξύ Προβολή και παρουσιαστής είχε μια λειτουργία για την Presenter για να συνδέσετε τον παρουσιαστή στην προβολή.

Η ερώτησή μου είναι, τότε αυτό: Πού θα πρέπει να δημιουργηθεί απόψεις και παρουσιαστές; Επίσης, όταν σε WinForms και webforms.

Δημοσιεύθηκε 09/12/2008 στις 23:04
πηγή χρήστη
Σε άλλες γλώσσες...                            


3 απαντήσεις

ψήφοι
3

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

Απαντήθηκε 09/12/2008 στις 23:15
πηγή χρήστη

ψήφοι
2

Σε Winforms, εγώ υπόσταση την άποψη, όπως απαιτείται (π.χ. στην mainμέθοδο, ή σε μια μέθοδο για άλλη παρουσιάστρια, αλλά οπουδήποτε νόημα πραγματικά). Η θέα, στη συνέχεια, δημιουργεί και καταχωρεί τον εαυτό της με μια νέα παρουσία του παρουσιαστή.

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

Απαντήθηκε 09/12/2008 στις 23:28
πηγή χρήστη

ψήφοι
1

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

Συγκρίνετε αυτό το σενάριο:

public class SomePresenter
{
    public ShowContactView(IContactView view)
    {
        IContact model = new Contact();
        new ContactPresenter(model, view);
        view.Show();
    }
} 

public class AnotherPresenter
{
    public ShowContactView(IContactView view)
    {
        IContact model = new Contact();
        new ContactPresenter(model, view);
        view.Show();
    }
} 

public class YetAnotherPresenter
{
    public ShowContactView(IContactView view)
    {
        IContact model = new Contact();
        new ContactPresenter(model, view);
        view.Show();
    }
} 

public partial class ContactView : Form, IContactView
{    
    public ContactView()
    {
        InitializeComponent();
    }
}

σε αυτό:

public class SomePresenter
{
    public ShowContactView(IContactView view)
    {
        view.Show();
    }
} 

public class AnotherPresenter
{
    public ShowContactView(IContactView view)
    {
        view.Show();
    }
} 

public class YetAnotherPresenter
{
    public ShowContactView(IContactView view)
    {
        view.Show();
    }
} 

public partial class ContactView : Form, IContactView
{    
    public ContactView()
    {
        InitializeComponent();

        new ContactPresenter(new Contact(), this);
    }
}

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

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

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

Απαντήθηκε 18/01/2013 στις 00:15
πηγή χρήστη

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