在DDD中,其中一个关键概念是Repository,它允许您检索实体(或聚合根),然后在更新后将其保存回来.
假设我们需要对实体执行一些“批量”操作,并且实体的数量使得将它们检索到内存中是绝对不可能的.即操作只能在数据库中执行.
这种“批量”运营的地方在哪里?它应该是存储库中的方法吗?它不会“泄漏”数据库特定操作的存储库抽象吗?它不会将业务运营从实体转移到存储库吗?
我认为这应该是一项服务.
埃文斯在他的书中建议,当你怀疑是否在一个类中放入一个“闻起来很糟糕”的方法因为你认为它不属于那个类时,请在里面运行一个ServiceFoo类.