多值对象上的业务逻辑 - 放置循环的位置?
...以及如何最好地处理视图层的成功/失败反馈。多值对象上的业务逻辑 - 放置循环的位置?
选项包括:
doBusinessLogic(things)
或
for (Thing thing : things) { doBusinessLogic(thing)
}
假设我们想接收以一致的方式成功/错误反馈的视图层(即,从上值对象的单个或多个操作)什么是最好的方法?
澄清:从视图层中的业务逻辑调用抛出
处理多个异常类型是重码,也使得维护问题(新的例外是引入了表示层不知道)。对于业务逻辑调用来说,处理多个值对象上的错误并将它们“打包”以使视图以一致的方式处理似乎更好。
回答:
如何沿着你的一项建议的路线的东西:
for (businessObject : businessObjects) { businessObject.doBusinessLogic() }
的想法是把业务逻辑的业务对象的方法。您的视图层可以遍历所有业务对象,告诉每个业务对象执行业务。它们的业务如何处于业务层的业务对象逻辑中。您可以通过从doBusinessLogic方法返回值或通过抛出异常发生异常来处理错误等。
如果您正在执行跨业务对象逻辑(即对多个单一业务对象进行操作的逻辑),也许可以构建一个businessObjectManager类,该类可能具有接收一个或多个业务对象并操作的方法在他们。因此,通过将管理器对象放在业务层中,您仍然将业务逻辑保留在业务层中。
回答:
最终我选择了前一个选项,并创建了一个轻量级的通用“结果包”类,该类封装了对象集合的动作成功和失败。成功或失败的关键在于相应的对象标识符。
bundlesis填充在每个业务逻辑调用中并返回到视图层。 '执行操作对象'业务逻辑循环中引发的异常被捕获,并且相应的故障被添加到结果包(键入对象ID)。
视图层有一个简单的帮助方法,它向用户呈现结果包中包含的反馈。
这很有效。
我认为你采取的方法是最适合你的系统。
以上是 多值对象上的业务逻辑 - 放置循环的位置? 的全部内容, 来源链接: utcz.com/qa/258898.html