Idealmente, l'interfaccia utente non dovrebbe conoscere direttamente i tuoi oggetti di business. Dovrebbe sapere cosa deve visualizzare e dove inviare eventuali sottomissioni. Il destinatario dell'invio dovrebbe sapere come elaborare i dati inviati rispetto ai tuoi oggetti di dominio.
Quindi non ci dovrebbe essere nulla da ripristinare, solo i dati del modulo da scartare.
A volte è necessario memorizzare i dati dei moduli da qualche parte, nel caso in cui la presentazione sia messa in attesa o l'applicazione si arresti in modo anomalo, o qualsiasi altra cosa. In questi casi, suggerirei comunque di archiviare i dati del modulo separatamente dai dati del dominio, rendendoli altrettanto facili da scartare.
Nella rara occasione in cui potrebbe essere necessario applicare le modifiche ai dati e testarlo prima di eseguirne il rollback. Se non è assolutamente possibile utilizzare un'area di gestione temporanea, utilizzare i record di cancellazione e cronologia, ma sicuramente non esporli all'interfaccia utente. Consenti solo di passare da una revisione all'altra.