多值对象上的业务逻辑 - 放置循环的位置?

...以及如何最好地处理视图层的成功/失败反馈。多值对象上的业务逻辑 - 放置循环的位置?

选项包括:

doBusinessLogic(things) 

for (Thing thing : things) { 

doBusinessLogic(thing)

}

假设我们想接收以一致的方式成功/错误反馈的视图层(即,从上值对象的单个或多个操作)什么是最好的方法?

澄清:从视图层中的业务逻辑调用抛出

处理多个异常类型是重码,也使得维护问题(新的例外是引入了表示层不知道)。对于业务逻辑调用来说,处理多个值对象上的错误并将它们“打包”以使视图以一致的方式处理似乎更好。

回答:

如何沿着你的一项建议的路线的东西:

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

的想法是把业务逻辑的业务对象的方法。您的视图层可以遍历所有业务对象,告诉每个业务对象执行业务。它们的业务如何处于业务层的业务对象逻辑中。您可以通过从doBusinessLogic方法返回值或通过抛出异常发生异常来处理错误等。

如果您正在执行跨业务对象逻辑(即对多个单一业务对象进行操作的逻辑),也许可以构建一个businessObjectManager类,该类可能具有接收一个或多个业务对象并操作的方法在他们。因此,通过将管理器对象放在业务层中,您仍然将业务逻辑保留在业务层中。

回答:

最终我选择了前一个选项,并创建了一个轻量级的通用“结果包”类,该类封装了对象集合的动作成功和失败。成功或失败的关键在于相应的对象标识符。

bundlesis填充在每个业务逻辑调用中并返回到视图层。 '执行操作对象'业务逻辑循环中引发的异常被捕获,并且相应的故障被添加到结果包(键入对象ID)。

视图层有一个简单的帮助方法,它向用户呈现结果包中包含的反馈。

这很有效。

我认为你采取的方法是最适合你的系统。

以上是 多值对象上的业务逻辑 - 放置循环的位置? 的全部内容, 来源链接: utcz.com/qa/258898.html

回到顶部