我想知道如何在保存时检查域对象是否处于正确状态。 如果Object有持久信息 - 很明显,例如我可以在Save方法中查看Order的金额。但是持久的无知对象没有Save方法。他们只有数据和行为。我是否应该依赖开发人员的准确性,或者我需要以某种方式检查所有实体图表,然后将其保存在数据库中?
答案 0 :(得分:1)
也许我不理解你。
我不确定你是如何得到一个“无知”的对象。这似乎违背了封装的核心原则。修改对象状态的唯一方法应该是通过它的接口。接口有责任确保对状态的任何更新都有效。因此,在您的示例中,您不需要检查save()
操作中的金额(假设此处“保存”表示持续存在)。它应该由于例如更新而更新。调用addProduct()
(或类似的东西 - 即添加项目以订购更新金额)。
对象是持久性还是暂时性是无关紧要的 - 它应始终通过其接口封装状态更新。
希望有所帮助 - 如果我误解了道歉。