Design Pattern MVC

1.748 visite

Design patterns

Qualche articolo fa abbiamo spiegato quali sono le categorie di pattern introducendo il Singleton e in questo articolo vorremmo invece introdurre un Pattern Architetturale: il Design Pattern MVC.

Il Design Pattern MVC (Model-View-Controller) è un pattern molto usato nella programmazione orientata ad oggetti (OOP) e utile per separare di un software la parte visuale dai suoi dati.

Il Diagramma di questo pattern è il seguente:

Model-View-Controller Diagram

Il punto di accesso dell’utente utilizzatore è dal controller che sarà una sorta di “arbitro” che tiene appunto separati i dati dal loro modo di essere visualizzati. In poche parole, utilizzando un pattern del genere se dovesse essere necessario cambiare la logica di presentazione (View) non sarà necessario toccare la logica di business (Model).

Il design pattern MVC originariamente usato da Smalltalk si è diffuso moltissimo in framework basati su PHP come (Symfony, Zend Framework, CakePHP, Yii framework, CodeIgniter), su Ruby (Ruby on Rails), su Python (Django, TurboGears, Pylons, Web2py, Zope), su Java (Swing, JSF e Struts), su Objective C o su .NET.

Quindi riepilogando il design pattern MVC è composto dai seguenti moduli:

  • il Model che fornisce i metodi per accedere ai dati dell’applicazione
  • il Controller punto di controllo che definisce lo stato dei componenti in base all’input dell’utente
  • il View il modulo di visualizzazione

Quindi un esempio di applicazione potrebbe avere Il Model connesso che si interfaccia con il database, la View che utilizza template di visualizzazione e il Controller per esempio che viene intercettato tramite Web Services

MVC

Certamente l’utilizzo di questo pattern rende più complicato il software che vogliamo creare ma si avranno molti benefici specie in caso di dover effettuare modifiche in futuro rendendo lungimirante la nostra scelta.

Esistono delle varianti di questo design pattern MVC ma ne parleremo nei prossimi articoli…

Iscriviti alla newsletter e rimani sempre aggiornato

Lascia un commento

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