MVC vs MVP
Model View Controller (noto anche come MVC) è un modello di natura architettonica utilizzato specificamente nell'ingegneria del software. Questo particolare schema viene utilizzato per isolare quella che è nota come "logica di dominio", che è semplicemente la logica di un'applicazione per l'utente. È isolato dall'input e dalla presentazione (noto come GUI) e consente uno sviluppo indipendente.
Model View Presenter (noto anche come MVP) è una permutazione diretta di MVC. Si tratta di un modello software (in particolare, un modello di progettazione dell'interfaccia utente) progettato specificamente per aiutare il collaudo di unità automatizzate e migliorare quella che è nota come separazione delle preoccupazioni nella logica di presentazione. La separazione delle preoccupazioni è fondamentalmente un processo mediante il quale un programma per computer è separato in caratteristiche distinte che non si sovrappongono, in termini di come funzionano.
La parte del modello del MVC è essenzialmente un modello che rappresenta i dati tramite domini specifici i dati utilizzati per consentire all'applicazione di funzionare. La porzione di vista trasforma il modello in un'interazione adatta per gli utenti: di solito è un elemento dell'interfaccia utente. Infine, la parte del controller riceve in modo appropriato l'input. Prendendo decisioni per gli oggetti trovati nel modello, il controller funge da catalizzatore per la risposta.
La parte del modello del MVP definisce i dati che devono essere visualizzati (o applicati) nell'interfaccia utente. La porzione di visualizzazione mostra i dati definiti nel modello e invia comandi dell'utente (noti come eventi) al presentatore (che agirà su questi dati). Il presentatore, quindi, agisce sul modello e sulla vista del modello. In quanto tale, è in grado di recuperare i dati dai repository (trovati nel modello), continuando i dati e formattandoli, in modo che possano essere facilmente visualizzati nella vista.
Esistono diverse varianti dell'MVC. In quanto tale, il flusso del controllo è in un ordine molto rigoroso: in primo luogo, l'utente interagirà con l'interfaccia (premendo un pulsante sul mouse, ad esempio), quindi il controller si prenderà cura dell'evento di input e lo cambierà in l'azione dell'utente appropriata. Successivamente, il controllore notifica il modello di ciò che l'utente ha fatto, il che molto probabilmente porterà il modello a cambiare il suo stato (come un aggiornamento, ad esempio). La vista pone quindi una domanda al modello per generare l'interfaccia utente. Infine, l'interfaccia utente attende istruzioni che riavvieranno il ciclo.
Sommario:
1. MVC è un modello architettonico che isola la logica del dominio; MVP è un discendente di MVC progettato per aiutare a testare le unità automatizzate e migliorare la separazione dei problemi.
2. Per quanto riguarda MVC, il modello rappresenta i dati, la vista trasforma il modello in un'interazione user friendly e il controller riceve l'input; per quanto riguarda l'MVP, il modello definisce i dati, la vista lo visualizza e il relatore agisce sul modello e sulla sua vista.