2011-01-20 16 views
6

Sto leggendo la differenza tra MVC, MVP, MVVMChiarimento: MVC, MVP, MVVM

Fonte: here

alt text

mio dubbio è, i diagrammi (MVP) (MVVM) Visualizza freccia bidirezionale tra Modle e Presenter, Model e ViewModel.

Presenter e ViewModel ovviamente a conoscenza di Model.But vuol dire che Model è a conoscenza di Presenter e ViewModel?

+0

in MVC pt 3 afferma che View non ha alcuna conoscenza sul controller. Pt 4 dice che la vista ha una conoscenza del controller. È in contraddizione. Pt 4 dovrebbe essere vista ha invece una conoscenza del modello. Pls conferma – NSN

risposta

7

Presenter e ViewModel ovviamente a conoscenza di Model.But vuol dire che Model è a conoscenza di Presenter e ViewModel?

No. Almeno, il modo in cui visualizzo questi modelli, il modello dovrebbe (idealmente) essere ignaro di qualsiasi cosa eccetto se stesso. Ho cercato di evidenziarlo in my discussion of MVVM mostrando solo una freccia unidirezionale al Modello.

Tuttavia, molte persone utilizzano una freccia che va in entrambe le direzioni verso/dal modello per rappresentare gli eventi generati dal modello. Dipende in qualche modo da come la vedi: il modello probabilmente dovrà notificare altri livelli di modifiche al suo interno. A seconda della lingua/struttura, questo può sembrare il modello "parlante" con altri livelli. Tuttavia, cerco di stare molto attento a mantenere questo aspetto del tutto neutrale dal punto di vista del modello. Ad esempio, in C#, utilizzo solo un evento, in cui i tipi sono tutti specifici del modello. Sa che "qualcosa" può ascoltare l'evento, ma non ha alcuna conoscenza di ciò che comprende quel "qualcosa".

+0

@quando la freccia deve essere cambiata in unidirezionale, giusto? –

+0

@ ASP.netBeginner: vedi il mio link + il mio ultimo paragrafo (ora modificato) per i dettagli ... –

+0

@Reed Wow la tua discussione è buona, come ho perso una discussione così buona. Grazie. Ora le cose sono chiare. –