Model-View-Controller: chi memorizza i dati nella cache?

0

Sto costruendo una GUI per interfacciare un dispositivo integrato a un host PC. La GUI fornisce il controllo sui parametri del dispositivo e visualizza alcuni feedback da esso. La GUI deve anche emulare alcune funzionalità del dispositivo e presentarla all'utente.

Mi è stato consigliato di utilizzare un pattern Model-View-Controller, in modo che se il dispositivo non riconosce un comando, l'utente conosce l'inefficacia delle sue azioni.

Il problema è che non riesco a decidere quale componente (i) deve memorizzare nella cache i dati. Esempio: quando un valore viene stampato sullo schermo, la vista deve chiaramente saperlo. Tuttavia, il modello deve anche saperlo, poiché lo usa per calcolare altri valori. Inoltre, il controller deve anche saperlo, ad esempio, la modifica del valore potrebbe essere proporzionale a un logaritmo dell'azione dell'utente.

Come faccio a staccarlo correttamente?

    
posta Vorac 05.07.2013 - 11:29
fonte

3 risposte

9

La vista deve saperlo solo in un modo di mostrare le informazioni all'utente. Non sa davvero se si tratti di una temperatura meteorologica, di un testo casuale o di qualsiasi altra cosa. Non interpreta i dati in alcun modo.

Il modello è quello che memorizza ed elabora i dati. E sa se abilitare o disabilitare un controllo. Nel tuo caso, devi memorizzare nella cache i dati nel modello.

Il controller controlla il modello e visualizza i livelli. È quello che può abilitare o disabilitare un controllo nella vista usando il valore dal modello. E imposta tutti i valori nella vista semplicemente passandoli dal modello.

    
risposta data 05.07.2013 - 11:50
fonte
0

Vorrei utilizzare un modello aggiuntivo (o una raccolta di quelli, che è di nuovo un modello) per l'archiviazione nella cache. Quindi utilizzare l'architettura drivent degli eventi, in cui la mia vista emette eventi che rappresentano le interazioni dell'utente, a cui il mio modello di cache dovrebbe ascoltare. Il modello può emettere eventi e così via. In questo modo tutti i componenti sono ben isolati e comunicano solo tramite eventi. E se il controller deve fare qualcosa, fallo di nuovo ascoltare gli eventi.

    
risposta data 30.08.2013 - 11:45
fonte
-2

In questi casi penso che il caching del lato client debba comunque essere usato con molta attenzione in quanto aumenta le possibilità di dati incoerenti.

    
risposta data 21.03.2017 - 11:14
fonte

Leggi altre domande sui tag