Design Pattern: Model View Presenter (MVP) vs Model View Controller (MVC)

In rete si trova molta documentazione sui design pattern, sul loro utilizzo e sulla loro implementazione, ma non sempre il materiale a disposizione è accurato, chiaro e preciso. Ecco perchè volevo segnalare un interessante articolo che sebbene non sia proprio recentissimo (2007) tuttavia risulta scritto molto bene, chiaro, conciso ma allo stesso tempo completo.

L’articolo, sebbene si riferisca ad una specifica tecnologia (.NET), presenta interessanti spunti di riflessione, soprattutto sulle differenze rispetto ai due approcci Model View Presenter (MVP) e Model View Controller (MVC). Il diagramma di comparazione tra i due pattern aiuta molto a chiarire a colpo d’occhio la differenza di approccio tra le due soluzione, differenza in cui chiaramente la view gioca un ruolo fondamentale.

Il testo prosegue con un’analisi incentrata sul modello di navigazione a disposizione di chi implementa il pattern MVP piuttosto che il pattern MVC, ed anche in questo caso i riferimenti alla tecnologia .NETsono sostanzialmente irrilevanti per cogliere il fulcro del discorso.

Le conclusioni dell’articolo riguardano i vantaggi che secondo l’autore ci sarebbero adottando un approccio MVP piuttosto che MVC, anche per quanto riguarda lo sviluppo guidatato dai test: infatti anche se ammette di conoscere meno l’approccio MVC rispetto a quello MVP, l’autore ritiene l’MVC più difficile da testare.

Consiglio la lettura dell’articolo non tanto per la condivisione in toto del punta di vista dell’autore, ma soprattutto perchè sicuramente è un ottimo documento che fornisce diversi spunti di riflessione che possono tornare molto utili in fase di analisi  e progettazione.

 

 

2 commenti su “Design Pattern: Model View Presenter (MVP) vs Model View Controller (MVC)”

  1. @Marco

    Ciao! In effetti l’MVP, come qualsiasi altro pattern, è slegato dalla tecnologia utilizzata per implementarlo, pertanto non dovresti considerarla come una specifica implementazione .NET…infatti posso almeno farti un altro esempio in cui viene applicato questo design pattern: la tecnologia GWT (Google Web Toolkit) utilizza proprio questo pattern architetturale e chiaramente siamo in contesto Java 😉

  2. MVP non l’avevo mai sentito ma personalmente delle specifiche dal mondo .NET non è che mi fido poi tanto…

    Ciao

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*