Sono davvero sorpreso dalle reazioni negative a questa domanda, in quanto si tratta di una piuttosto interessante. Mi aspetto che sia perché la maggior parte delle persone suppone che MVC abbia solo un significato in un ambiente Web, ma MVC è completamente applicabile anche a un programma CLI. Presenta solo un mezzo di visualizzazione diverso. In effetti, lo considererei il superbo design MVC che è stato in grado di collegare una "vista" CLI, GUI o web senza alcuna modifica al controller e ai pezzi del modello.
Tutto ciò che MVC dice è che, dato un programma, è astratto il più possibile la parte vista - la presentazione della app, ciò che gli utenti vedono e interagiscono con - dal reale, logica interna della app. Il modo in cui lo fai è creare controller che "incollino" la vista e qualsiasi controllo presenti nella logica sul back-end. In parole povere, i controllori traducono l'input dell'utente in chiamate di metodo e traducono i valori restituiti in elementi utili all'utente. La parte del modello del modello è alquanto dibattuta. Alcuni affermano che ogni singolo oggetto grafico separato inviato alla vista per la visualizzazione è a "modello". Altri sostengono che l'intero grafo degli oggetti stateful che vive nel back-end è il "modello" ei controller formano una sorta di vetro che consente alla vista di individuare, ispezionare e modificare parti specifiche del modello. La domanda è davvero se ci sono molti modelli che scorrono continuamente avanti e indietro o uno, modello di grandi dimensioni che deve essere esposto in un modo che l'utente può comprendere.
Per accedere a MVC in una CLI o in qualsiasi tipo di app, è necessario disporre di una parte del codice chiaramente definita come vista/presentazione. Non dovrebbe mai e poi mai avere qualcosa di simile alla logica aziendale. I tuoi controller dovrebbero essere oggetti che sanno come rispondere agli input dell'utente e possono rimandare indietro le cose per la visualizzazione, anche se senza alcuna ipotesi su come queste cose verranno visualizzate o esattamente quale forma prenderanno gli input. Il modello, in un modo o nell'altro, è fondamentalmente il dato reale o "roba" a cui l'utente si preoccupa, e dovrebbe essere ignaro della vista che lo sta mostrando o del controller che sta ... um ... controllandolo.
fonte
2011-08-18 01:15:25
Cosa intendi? Quale libreria di classi MVC? Che tipo di interfaccia utente? – bmargulies
Intendo il modello ModelViewController –
@Luke, che è uno schema di progettazione o un soprannome per una libreria esistente. Se quest'ultimo, quale biblioteca? Se il primo, la tua domanda è priva di senso. –