大家好)我正在开发一个使用 DDD 的系统。
该系统有2个模块:
- 配置模块。他从事新设备的注册工作:设备本身、型号和其他参数。
- 用于检查设备缺陷的模块。
每个设备类型描述一个特定的实体类。同时,在创建实体类的对象时,需要对其参数进行验证。在系统中注册新设备以使用适当的存储库(存储库)将其保存在数据库中结束。
在检查模块中,将从列表中选择的设备从数据库加载到程序中。使用基于 ID 的适当存储库,返回设备以进行故障排除。在存储库的输出端,设备实体类的相应对象被加载到诊断中。但是,要创建这样的对象,必须对其进行验证。
问题出现了:如果最初将关于实体的正确信息写入数据库,那么验证从数据库中提取的信息需要多少?验证本身由内置到相应设备实体对象中的验证器类执行。
也许我完全误解了什么?
在数据库中,您需要存储已经可靠和正确的信息,以保持数据的完整性。也就是说,我不明白你从数据库中提取时到底要验证什么。在将数据保存到数据库之前,有必要检查数据的正确性 (!!)。
我完全同意@ImZ 的观点,即从数据库恢复时,不需要验证实体。但是,有必要在保存到数据库之前而不是在尝试更改实体时进行检查。那些。当不可能通过传递不正确的值使实体进入无效状态时,它更正确。为此,实体必须检查通过公共接口设置的值的正确性。所有这一切导致两个结论:
那。保存和恢复到/从数据库的任务是读取然后将一些私有状态写入对象。