Digamos que tiene un método de lógica de negocios que puede realizar algunas operaciones en varios objetos. Tal vez desee llamar a un servicio web de selección de números de lotería, una vez por cada persona seleccionada de una lista. En Java, el código podría ser algo como esto:Manejo de errores y comentarios al realizar operaciones masivas en una arquitectura de varios niveles
Set<Person> selectedPeople = ... // fetch list of people
for (Person person : selectedPeople) {
String lotteryNumber = callLotteryNumberWebService(person);
// ...
}
Tenga en cuenta que el número de lotería servicio web puede tener efectos secundarios, como la grabación de que la persona que ha solicitado un número de lotería (quizás carga su cuenta), por lo que incluso si la llamada al servicio web falla para una persona, puede haber tenido éxito para otros. Esta información (los números de la lotería) deberá enviarse a un nivel superior (la vista).
Si este fuera el caso donde se realizó una sola operación, el método de lógica de negocios podría devolver un único valor (por ejemplo, el número de lotería) o arrojar una excepción con cualquier detalle de la falla. Pero para operaciones masivas, algunas de las operaciones podrían tener éxito y algunas podrían fallar.
Esto parece ser un tipo de problema que ocurriría en muchas aplicaciones y debería haber una manera limpia de manejarlo. Entonces, ¿cuál es la mejor manera de devolver este tipo de información desde la capa de lógica de negocios a otra capa en una aplicación (como una vista), preferiblemente de una manera genérica que puede reutilizarse para diferentes tipos de datos y operaciones?
¡Excelente respuesta! –