验证持久的无知域对象

时间:2011-02-02 14:19:36

标签: entity-framework validation architecture domain-driven-design

我想知道如何在保存时检查域对象是否处于正确状态。 如果Object有持久信息 - 很明显,例如我可以在Save方法中查看Order的金额。但是持久的无知对象没有Save方法。他们只有数据和行为。我是否应该依赖开发人员的准确性,或者我需要以某种方式检查所有实体图表,然后将其保存在数据库中?

1 个答案:

答案 0 :(得分:1)

也许我不理解你。

我不确定你是如何得到一个“无知”的对象。这似乎违背了封装的核心原则。修改对象状态的唯一方法应该是通过它的接口。接口有责任确保对状态的任何更新都有效。因此,在您的示例中,您不需要检查save()操作中的金额(假设此处“保存”表示持续存在)。它应该由于例如更新而更新。调用addProduct()(或类似的东西 - 即添加项目以订购更新金额)。

对象是持久性还是暂时性是无关紧要的 - 它应始终通过其接口封装状态更新。

希望有所帮助 - 如果我误解了道歉。