Domanda

Ho sentito il termine MVC (Model View Controller) lanciato di recente con un sacco di Buzz, ma che cos'è veramente?

È stato utile?

Soluzione

Potresti dare un'occhiata a ciò che Martin Fowler ha da dire sulle architetture MVC, MVP e UI in generale su Sito di Martin Fowlers .

Altri suggerimenti

Mi piace questo articolo di Martin Fowler. Vedrai che MVC è effettivamente più o meno morto, a rigor di termini, nel suo dominio originale di ricca programmazione UI. La distinzione tra View e Controller non si applica alla maggior parte dei moderni toolkit dell'interfaccia utente.

Il termine sembra aver recentemente trovato nuova vita nei circoli di programmazione web. Non sono sicuro che sia davvero MVC, o se riutilizzi semplicemente il nome per alcune idee strettamente correlate ma sottilmente diverse.

MVC è un modello di design originariamente pionieristico nei tempi antichi del smalltalk.

L'idea era che un modello rappresentasse lo stato e la logica della tua applicazione e che i controller gestissero l'IO tra "Viste" e "

Una vista era una rappresentazione dello stato nel modello. Ad esempio, il tuo modello potrebbe essere un documento di foglio di lavoro e potresti avere una vista che lo rappresenta come un foglio di lavoro e una vista che lo rappresenta come una tabella pivot.

Il MVC moderno è stato inquinato da una robaccia Web MVC falsa, quindi permetterò ad altri di rispondere.

Come il tag sulla tua domanda afferma che è un modello di progettazione. Ma questo probabilmente non ti aiuta. Fondamentalmente quello che è, è un modo per organizzare il codice in raggruppamenti logici che mantengono i vari pezzi separati e facilmente modificabili.

Semplificazione: Modello = Struttura dei dati / Logica aziendale Visualizza = Livello di output (ovvero codice HTML) Controller = Livello di trasferimento messaggi

Quindi, quando le persone parlano di MVC, ciò di cui stanno parlando è suddividere il codice in questi gruppi logici per mantenerlo pulito, strutturato e, si spera, accoppiato in modo lasco. Seguendo questo modello di progettazione dovresti essere in grado di creare applicazioni che potrebbero avere lì Visualizza completamente cambiato in qualcos'altro senza mai dover toccare il controller o il modello (ovvero passare da HTML a RSS).

Ci sono tonnellate e tonnellate di tutorial là fuori solo per Google e sono sicuro che ne scoprirai almeno uno che lo spiegherà in termini che fanno clic con te.

Ecco una descrizione ingenua di MVC: http: // www.devcodenote.com/2015/04/mvc-model-view-controller.html

Uno snippet:

Definizione: è un modello di progettazione che separa un'applicazione in più livelli di funzionalità.

I livelli:

Modello Rappresenta i dati. Funziona come un'interfaccia tra il database e l'applicazione (come un oggetto dati). Gestirà validazioni, associazioni, transazioni ecc.

Regolatore Raccoglie ed elabora i dati. Gestisce il codice che esegue la selezione e la messaggistica dei dati.

Visualizza Visualizza l'output per gli utenti.

Finora Wikipedia sembra descriverlo meglio:

http://en.wikipedia.org/wiki/Model-view-controller

Model-view-controller (MVC) è un modello architettonico utilizzato nell'ingegneria del software. L'uso corretto del modello isola la logica aziendale dalle considerazioni sull'interfaccia utente, risultando in un'applicazione in cui è più semplice modificare l'aspetto visivo dell'applicazione o le regole aziendali sottostanti senza influire sull'altra. In MVC, il modello rappresenta le informazioni (i dati) dell'applicazione e le regole aziendali utilizzate per manipolare i dati; la vista corrisponde a elementi dell'interfaccia utente come testo, elementi della casella di controllo e così via; e il controller gestisce i dettagli che coinvolgono la comunicazione al modello di azioni dell'utente come battiture e movimenti del mouse

Il paradigma dell'interfaccia utente MVC o Model-View-Controller è stato descritto per la prima volta da Trygve Reenskaug di Xerox PARC. Apparve per la prima volta in stampa nel volume 6 della rivista Byte, numero 8, nell'agosto del 1981.

Questo Qual è l'articolo del blog MVC su Oreilly è coperto.

MVC è un modello di architettura software che separa la rappresentazione dall'interazione dell'utente. Generalmente, il modello è costituito da dati dell'applicazione e funzioni che interagiscono con esso, mentre la vista presenta questi dati all'utente; il controller media tra i due.

Motivo di progettazione MVC:

4 parti = Utente, Visualizza, Controller, Modello.

Utente:  - visualizza la vista e utilizza il controller.

Modello:  - contiene i dati e aggiorna il modello in base alla presenza di nuovi dati / stato.

Visualizza:  - visualizza i dati contenuti nel Modello.

Controller:  - accetta la richiesta da parte dell'utente di ottenere o impostare informazioni, quindi comunica con la vista o il modello, risp.  - ottiene " ottiene " tramite la vista.  - "imposta" tramite il modello.

È un modo per separare la funzionalità sottostante dell'applicazione (modello) dal modo in cui interagisce con l'utente (vista). Il controller coordina il modo in cui il modello e la vista parlano tra loro.

Anche se al momento è di gran moda, è importante ricordare che impedire al modello stesso di determinare esattamente come i suoi dati vengono presentati all'utente può essere visto come una cosa negativa. L'esempio più ovvio è con HTML. L'intenzione originale dell'HTML era che ci fosse una chiara separazione del modello (HTML) dalla vista (pagina web renderizzata) tramite un controller (il browser). C'è stata una tale reazione contraria a questa intenzione originale che i browser sono criticati se non rendono un pixel di pagina perfetto per la visione desiderata dal progettista.

MVC è un modo per partizionare un elemento dell'interfaccia utente in 3 concetti distinti. Il modello sono i dati su cui opera l'interfaccia. La vista è come l'elemento è rappresentato visivamente (o forse in modo udibile?). Il controller è la logica che opera sui dati.

Ad esempio, se hai del testo che vuoi manipolare in una UI. Una semplice stringa potrebbe rappresentare i dati. La vista potrebbe essere un campo di testo. Il controller è la logica che traduce l'input dell'utente, ad esempio l'inserimento di caratteri o mouse, e apporta modifiche al modello di dati sottostante.

Come molti hanno già detto, MVC è un modello di progettazione. Sto insegnando a uno dei miei colleghi ora e l'ho spiegato in questo modo:

M - Il livello di accesso ai dati. Può trattarsi di accesso diretto ai dati, servizi web, ecc.

V view: il livello di presentazione della tua applicazione.

C ontrollers: questa è la logica aziendale per la tua applicazione.

Questo modello migliora lo sviluppo guidato dai test.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top