Come aggiornare selettivamente le proprietà di un oggetto sul server

1

Ho un sito Web GWT che mostra alcuni dati sul client in forma tabellare. Alcuni campi sono modificabili, quando viene apportata una modifica, il pulsante Salva diventa attivo.

Ci sono più proprietà che potrebbero essere cambiate, come potrei fare per aggiornarle sul server? Inoltre mi piacerebbe fornire un pulsante di annullamento in modo che le modifiche vengano ripristinate.

Quello che sto pensando in questo momento è di usare i setter e controllare se il valore corrente è lo stesso del valore modificato se c'è una modifica, quindi verrà inviata una richiesta a un processo in background.

Ma non sono sicuro che questo sia l'approccio migliore e forse i setter con logica extra non sono la migliore pratica. Penso che questo sia un problema che molte applicazioni web devono affrontare e forse c'è un modello che rende tutto più elegante.

Sarebbe bello se qualcuno potesse spiegare come risolverebbe questo.

    
posta nikhil 27.02.2013 - 07:01
fonte

1 risposta

3

Questo mi sembra una domanda borderline-SO, ma risponderò qui. Penso che tu voglia utilizzare il Pattern di comando . L'implementazione di questo modello ti offre la struttura necessaria per supportare l'annullamento di annullamenti e persino di più livelli.

L'approccio più semplice sarebbe quello di fare in modo che ogni "Salva" generi un oggetto Command con i valori correnti del modulo; quando il codice di elaborazione riceve il comando, può innanzitutto "archiviare" lo stato corrente dell'oggetto dati nel comando in modo da poter avere un'immagine prima / dopo dell'oggetto dati e quindi supportare l'annullamento.

Questo approccio è leggermente ostinato e potrebbe essere migliorato registrando solo le informazioni delle proprietà che stanno effettivamente cambiando. Lascerò a te decidere se vale la pena aggiungere quella logica extra per "diff" sostanzialmente i valori del campo, in quanto aggiunge sicuramente un ulteriore livello di contabilità.

Suggerisco anche ulteriori letture nel principio di separazione delle query di comando . È un principio molto utile da seguire in molte aree dell'architettura.

    
risposta data 05.03.2013 - 14:38
fonte

Leggi altre domande sui tag