【发布时间】:2012-08-26 03:56:41
【问题描述】:
我想知道 DAO 应该处理多少业务逻辑。
好的,我们都知道 DAO 的目的是封装数据访问并隐藏有关它的所有信息以及实现。此外,DAO 的目标也是将业务逻辑与数据访问逻辑分离。
我认为 DAO 必须包含一些业务逻辑,例如如果由于特定领域的某些要求而无法删除或更新业务对象怎么办? 我猜没有人会为那个 DAO 实现删除/更新方法,而且——在我看来——这意味着一些业务逻辑知识。
现在,您可以想象我的问题更多的是概念性而非实际性,因此使用 ORM 是无用的建议,因为没有具体的使用场景。
问题是:如果对持久数据的操作有任何限制,DAO 应该处理多少业务逻辑?
示例: BusinessObject1 在其生命周期内只能更新一次。
假设我们可以很容易地知道它是否已经更新,如果我们再次尝试更新BusinessObject1,DAO 是否应该抛出异常?
或者它应该什么都没有检测到,这应该在业务层进行管理?
【问题讨论】:
-
已标记,并不是因为它本身是一个坏问题,但这可能不是最好的论坛(似乎更适合programmers.stackexchange.com)。以无法合理回答问题为由标记为不适当,“可能会引发辩论、争论、投票或扩展讨论”。我确实认为标记为“不是问题”,因为它“模棱两可、模糊、不完整、过于宽泛或修辞,无法以目前的形式得到合理的回答”。无论如何,我认为它不能被编辑成更合适的形式,因为这是一个主观问题
标签: oop design-patterns database-design dao