2

...以及如何最好地处理对视图层的成功/失败反馈。

选项是:

doBusinessLogic(things)

或者

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

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

澄清:

在视图层处理业务逻辑调用引发的多种异常类型是代码繁重的,并且还会导致维护问题(引入了表示层不知道的新异常)。业务逻辑调用处理多个值对象上的错误并“打包”它们以便视图以一致的方式处理似乎更好。

4

2 回答 2

1

按照你的后一个建议的方式怎么样:

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

这个想法是将业务逻辑放在业务对象的方法中。你的视图层可以遍历所有的业务对象,告诉每个人做他们的事情。各自如何做业务,在业务层中业务对象的逻辑中。您可以通过从 doBusinessLogic 方法返回值或通过为令人讨厌的事件抛出异常来处理错误等。

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

于 2009-08-26T21:22:11.170 回答
0

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

在每个业务逻辑调用中填充一个包并返回到视图层。捕获“对对象执行操作”业务逻辑循环中抛出的异常,并将相应的失败添加到结果包(以对象 ID 为关键字)。

视图层有一个简单的辅助方法,可以将结果包中包含的反馈呈现给用户。

这很好用。

我认为您采用的方法是最适合您的系统的方法。

于 2010-03-25T13:53:55.310 回答