Domanda sulla modellazione con MVC (il pattern, non il materiale MS / non web)

3

Sto lavorando a un'applicazione in cui sto cercando di utilizzare il pattern MVC, ma mi sono imbattuto in un punto di decisione di progettazione con cui potrei servirci.

La mia applicazione si occuperà della progettazione di macchine di stato. Attualmente il modello MVC contiene informazioni sugli stati, gli input, le uscite della macchina, ecc. La vista mostrerà un diagramma per la macchina, consentendo all'utente di aggiungere nuovi stati, stabilire transizioni e mettere gli stati in una disposizione piacevole, tra le altre cose.

Vorrei memorizzare parte dello stato del diagramma (ad es. le posizioni degli stati xey) quando le informazioni della macchina sono memorizzate per un successivo recupero, e mi chiedo come fare meglio a strutturare il modello (s?) per questo.

Sembra che questa informazione sull'interfaccia utente sia più strettamente correlata alla vista che al modello della macchina dello stato, quindi stavo pensando che un modello secondario potesse essere in ordine, ma sono riluttante a seguire questa strada a causa della maggiore complessità . L'aggiunta di queste informazioni al modello attuale non sembra il modo giusto per farlo.

Questa è la prima volta che utilizzo il pattern MVC, quindi sto ancora cercando di capire le cose. Qualsiasi input sarebbe apprezzato.

    
posta paul 20.06.2012 - 00:56
fonte

2 risposte

6

Hai due modelli

un modello è lo stato macchina: input, output, stati, transizioni, ecc.

l'altro modello è la presentazione / rendering di uno stato macchina: icone, coordinate x / y / z, caratteri, scale, ecc.

    
risposta data 20.06.2012 - 01:52
fonte
1

Hai chiaramente 2 opzioni:

Se le informazioni sull'interfaccia utente sono solo alcune cose, l'approccio migliore è quello di unire entrambi i "modelli" ed evitare una complessità eccessiva.

Se le informazioni dell'interfaccia utente sono grandi, creare un modello UI dovrebbe essere la scelta corretta.

È comprensibile che il tuo dubbio in merito sia comune. Le informazioni dell'interfaccia utente devono essere persistenti, quindi è necessario disporre di una sorta di "modello" che rappresenti le informazioni sulla vista da caricare quando viene caricato l'editor. A livello di codice potresti collegare entrambi i modelli con un id.

Spero che ti aiuti!

    
risposta data 20.06.2012 - 03:47
fonte

Leggi altre domande sui tag