Speravo in qualche consiglio:
Ho bisogno di progettare una soluzione software per un'applicazione java / Swing di medie dimensioni.
L'applicazione avrà circa 200 casi d'uso che richiedono la convalida dei dati complessi e la logica aziendale.
In genere, questo è il mio solito design:
- Crea un POJO semplice per ogni caso d'uso, con un costruttore personalizzato e la convalida personalizzata e la logica aziendale all'interno del suo metodo di esecuzione. Queste operazioni impongono una convalida dei dati semplice e complessa, come campi obbligatori, nomi univoci e vincoli più complessi.
- Crea un singolo controller con un metodo per ogni caso d'uso. Ogni metodo prende parametri personalizzati, costruisce ed esegue le relative operazioni.
- Per semplicità, non menzionerò dettagli sulla notifica del modello dati o sul meccanismo di accodamento operativo.
Questa soluzione ha funzionato in passato perché incoraggia tutti gli sviluppatori a riutilizzare i metodi e la convalida dei controller esistenti, tuttavia:
La nuova applicazione utilizzerà estensivamente le finestre di dialogo per l'immissione dei dati;
Queste finestre di dialogo dovrebbero implementare la stessa complessa convalida dei dati e la stessa logica di business implementata dal controller, tuttavia non è previsto che le finestre di dialogo aggiornino il modello di dati fino a quando non si fa clic sul pulsante OK.
Odio l'idea di scrivere più versioni della stessa complessa convalida e logica aziendale, a causa dell'incubo di manutenzione che invita.
Come posso eseguire una logica aziendale complessa e la convalida per le modifiche al modello di dati standard e le modifiche di finestra di dialogo "in sospeso", dato che la finestra di dialogo non esegue il commit delle modifiche finché non si fa clic sul pulsante OK?
Il modello dati potrebbe essere abbastanza grande, quindi creare un clone in memoria e il controller non sembra vitale.
Qualcuno ha qualche suggerimento? Se è così, sarò per sempre nei tuoi debiti.