title: Presenter first
text: # Presenter first
  
  Presenter First è un approccio allo sviluppo di software che combina insieme le idee del pattern Model View Presenter (MVP) e di Feature-Driven Development per sviluppare applicazioni completamente testate a partire da descrizioni fornite dall'utente, usato principalmente in ambienti GUI. In esso modello e vista sono completamente separati l'uno dall'altro, e le caratteristiche sono chiaramente documentate nella classe presentatrice in maniera dichiarativa, con una effettiva semplicità nella analisi e manutenzione del codice sorgente creato. La grande quantità di codice necessario per implementare questa metodologia può essere gestita attraverso uno strumento di modellizzazione.
  
  ## Componenti
  
  I tre componenti di Presenter First sono:
  
  ### Model
  
  Contiene i dati e la logica necessari al presenter.
  
  ### View
  
  Visualizza le informazioni e interagisce con l'utente. In Presenter First la vista ha poche responsabilità: passa le richieste dell'utente al presentatore (mediante eventi) ed espone delle proprietà e metodi per visualizzare le informazioni.
  
  ### Presenter
  
  È il centro della triade: riceve le richieste dalla vista, interroga il modello per ottenere le informazioni e le passa alla vista. Il presentatore è semplicemente un interprete di eventi e non ha nessun metodo o proprietà pubblica.
  
  