Domanda

... e il modo migliore per gestire il successo / feedback mancato lo strato di visualizzazione.

Le opzioni sono:

doBusinessLogic(things)

o

for (Thing thing : things) {
  doBusinessLogic(thing)
}

Supponendo che vogliamo uno strato di vista che riceve un feedback successo / errore in un modo coerente (cioè da operazioni singole o multiple su oggetti di valore), qual è l'approccio migliore?

Chiarimento:

Gestione di più tipi di eccezione lanciati da una chiamata logica di business nello strato di vista è il codice pesante e provoca anche problemi di manutenzione (nuove eccezioni vengono introdotti, che il livello di presentazione non conosce). Sembra meglio per la chiamata logica di business per gestire gli errori su più oggetti di valore e 'pacchetto' di loro per la vista per affrontare in modo coerente.

È stato utile?

Soluzione

Che ne dite qualcosa sulla falsariga del vostro quest'ultimo consiglio:

for (businessObject : businessObjects) { businessObject.doBusinessLogic() }

L'idea è quella di mettere la logica di business in un metodo dell'oggetto business. Il tuo può ciclo vista strato sopra tutti gli oggetti di business, dicendo a ciascuno di fare i loro affari. Come ciascuno fa la sua attività è nella logica dell'oggetto business nel livello di business. È possibile gestire gli errori e tale da valori del metodo di doBusinessLogic restituzione o lanciando eccezioni per le occorrenze brutto.

Se si sta facendo logica di cross-business oggetto (ad esempio, la logica che opera su più di un singolo oggetto business), forse si potrebbe costruire una classe businessObjectManager che potrebbe avere metodi che prendono in uno o più oggetti di business e opera su loro. Così, mettendo il gestore di oggetti nel livello aziendale, si conservano ancora tutta la tua logica di business nel livello aziendale.

Altri suggerimenti

In definitiva sono andato per la prima opzione e ha creato un leggero generica classe di "risultato fascio" che racchiude in sé i successi e gli insuccessi di un'azione su un insieme di oggetti. Un successo o il fallimento è calettato l'identificatore di oggetto corrispondente.

Un bundlesis popolato all'interno di ogni chiamata logica di business e restituito al livello di visualizzazione. Eccezioni generate nel loop logica aziendale 'eseguire l'azione sull'oggetto' vengono catturati ed un corrispondente mancata aggiunte al fascio risultato (calettato ID oggetto).

Lo strato vista ha un metodo di supporto semplice che presenta le valutazioni contenute nel pacchetto risultato all'utente.

Questo funziona molto bene.

Credo che l'approccio che porti con questo è tutto ciò che si adatta meglio con il sistema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top