Diciamo che abbiamo decine di POJO java che rappresentano il mio dominio, cioè i miei dati nel sistema che scorre come oggetti tra diversi livelli del mio sistema. Il sistema può essere un'applicazione Web o una semplice applicazione desktop. Ciò che il dominio consiste non ha molta importanza.Il POJO Java deve avere la convalida del campo e generare eccezioni nei metodi setter?
Durante la progettazione del mio sistema, sono confuso dove dovrei inserire qualsiasi logica di validazione. I miei POJO (oggetti di dominio) rappresentano i miei dati, e alcuni dei campi all'interno di quegli oggetti devono aderire a determinati criteri, ma se inserisco molta logica di validazione nei miei metodi setter, allora l'unico modo per dire al client chiamante è gettare un'eccezione E se non voglio che il sistema si blocchi, l'eccezione deve essere un'eccezione controllata che deve essere catturata e gestita. La conseguenza di ciò è che ogni volta che creo un nuovo oggetto usando i metodi setter (o anche i costruttori), ho fatto o rilanciare quell'eccezione o usare il blocco try-catch. Non sembra giusto essere obbligati a usare il try-catch su molti metodi setter.
Quindi la domanda è dove dovrei mettere la mia logica di validazione, in modo da non ingombrare il mio codice con un sacco di blocchi try-catch e rethrows. I migliori mangiatori di byte di JAVA sono invitati a partecipare alla discussione.
Ho cercato e cercato su Google, ma non ho trovato alcuna discussione specifica su questo argomento, quindi aspetto con grande entusiasmo di avere una visione più profonda di come le cose dovrebbero essere fatte davvero.
hai controllato la convalida del bean Java http://docs.oracle.com/javaee/6/tutorial/doc/gircz.html? –
Prova a utilizzare la convalida del bean ([JSR-303] (http://beanvalidation.org/1.0/spec/)), come implementato da ['hibernate-validator'] (http://hibernate.org/validator/) – beerbajay
Sì, ho controllato questi concetti, ma non sto chiedendo particolari API o metodi. Voglio capire e riflettere su cosa dovrebbe essere fatto con la convalida dei dati, e dove la validazione dovrebbe essere fatta per non ingombrare il sistema ovunque con un sacco di eccezioni e gestione delle eccezioni. – Moni