2009-05-26 11 views
3

Es gibt eine Menge Verwirrung über MVC, aber nachdem ich ein Head-First-Musterbuch durchgeblättert habe (Als Randnotiz hasse ich diese Marke, obwohl dieses Beispiel recht gut war), behauptet MVC oder Model View-Controller eine Mischung aus mehreren Mustern - Vermittler, Beobachter usw. ...Ist das MVC? Welches Designmuster habe ich benutzt?

In einem neuen Prototyp habe ich das Folgende gemacht, es ist C#, sollte aber einfach sein.

IPerson ist nur eine Schnittstelle, die das oben genannte definiert - ich habe es aus Gründen der Einfachheit weggelassen.

Ich weiß, dass die oben genannten Eigenschaften selbst sein könnten - aber das ist nur ein einfaches Beispiel. Das Ereignis wird jedes Mal ausgelöst, wenn sich einige Daten ändern - z. in SetAge/SetName.

interface IView { 
    void Initialize(); 
    void SetAgeClicked(object sender, EventArgs e); 
    void SetNameClicked(object sender, EventArgs e); 
} 

Kabel initialisieren - z. Textfelder auf dem Formular. SetAge/SetName sind die Button-Events - also muss das Formular/page etc .. using diese Methoden haben.

Form : IView { 

    // IView is implemented. 
    // Form is wired up 
    // Initialize is set etc... 
} 

ich den Test von MVC zu hören ist, wenn Sie eine neue Ansicht hinzuzufügen, ist es einfach, Dinge zum Laufen zu bekommen - und ja, es war. Ist das MVC? Ist das etwas anderes?

Jede Beratung/Eingabe wäre großartig. Es funktioniert - es will nur wissen warum.

Danke.

+0

Yup, das ist ein MVC Design-Muster, das Sie dort haben. –

+0

Ich habe eine Meinung gesehen (und ich stimme zu), dass MVC kein Designmuster ist, sondern ein architektonisches Muster. –

+0

Es wurde ein weiterer Prototyp erstellt, der passenderweise für "Passive View" geeignet ist. Referenz: http://blog.vuscode.com/malovicn/archive/2007/11/04/model-view-presenter-mvp-design-pattern-close-look-part-2-passive-view.aspx – Finglas

Antwort

2

Ich würde sagen, was Sie dort haben, ist eher MVP (Model-View-Presenter) als MVC. Es gibt zwei Hauptvarianten von MVP ... Supervising Controller und Passive View. Was Sie hier haben, scheint Passive View am ähnlichsten zu sein. Dies ist eine ziemlich klassische MVP-Implementierung, die von Benutzern verwendet wird, um WebForms zu verbessern und zu abstrahieren. Sie können hier für WebForms mehr über eine MVP Implementierung lesen:

http://haacked.com/archive/2006/08/09/ASP.NETSupervisingControllerModelViewPresenterFromSchematicToUnitTestsToCode.aspx

Die gleiche allgemeine Idee auch auf Windows Forms gilt.

+0

Ok, ich werde in die Passivansicht schauen. Es ist schon mal aufgetaucht, also schaue ich es mir an. – Finglas

2

Ich werde etwas anderes abstimmen.

Der Grund, warum ich das sage, ist eine Menge Debatte darüber, was MVC ist.

Siehe What's a controller anyway?

+0

Ok Ich ändere es in eine Variante oder einen Typ von MVC. – Finglas

1

Während das eine Implementierung von MVC ist, dass Sie es haben, ist es nicht die one Microsoft made and recently released verwenden. Overview of it von Scott Gutherie, wenn Sie etwas Geschichte wollen. Einige nennen es MVP, wo anstelle eines Controllers dieser Teil als Moderator bezeichnet wird, der die Geschäftslogik und die Benutzerinteraktion allgemein behandelt.

Verwandte Themen