资源文件作为DDD中的存储库

时间:2018-07-16 07:20:51

标签: domain-driven-design ddd-repositories

我有一个系统,需要根据复杂的公式计算一些运算。其中一些需要根据某些表数据选择值(例如excel)。对该表数据进行编码很麻烦,因此我决定在csv文件中维护de数据表并在需要时搜索它们的值。该数据不代表任何实体,因此我怀疑是否必须将此文件编码为DDD存储库。 使用csv文件的唯一原因是为了使代码清晰。如果我必须像存储库接口一样对每个文件进行编码,并在每次必须计算某些内容时将它们注入到实体中,则代码将失去可读性。 另一方面,在DDD中,实体必须独立于任何体系结构实现。为此,我将实体与“外部资源”结合在一起。

1 个答案:

答案 0 :(得分:0)

将CSV读取代码放入存储库中正是您应该做的。我不了解有关使代码的可读性降低的部分–应该使事情更具可读性,因为在用途众所周知的存储库中只有一个方法调用。

使用存储库还有其他优点。对于单元测试,您不必专门为特定测试创建CSV文件。相反,您可以模拟存储库以返回测试所需的任何值。另外,如果将来在某个时间更改该数据的实现,则如果代码在存储库中,则更新新数据源将更加容易。