2011-08-17 11 views
13

Sto cercando di ottenere MVC nel mio progetto della riga di comando.MVC in riga di comando java

A partire da ora (senza MVC, ovviamente) ho:

  • MainClass (nome falso, ovviamente), un tasto tramite il menu alcune volte si crea un oggetto di sistema
  • Menu (utilizzato dal principale per presentare le opzioni)
  • Sistema, ha un modello come attributo, creato con un input di file o tastiera, utilizza i dati del modello per eseguire un'operazione semplice .calculate (valoreA, valoreB) dove valoreA e valoreB sono selezionati utilizzando il menu da un'area di attributi del modello
  • Modello (kin d of) è il contenitore dei dati che ho.

Qualcuno può suggerirmi una struttura adeguata per le lezioni?

Grazie mille, Luca

+0

Cosa intendi? Quale libreria di classi MVC? Che tipo di interfaccia utente? – bmargulies

+0

Intendo il modello ModelViewController –

+0

@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. –

risposta

14

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.

Problemi correlati