2010-08-23 71 views
2

取一个与其他几个类有关系的类。第一类可以看作聚合(根)。从服务层的角度看,如何最好地分割呼叫?集合,存储库和服务层

  1. 呼叫骨料的整个对象图形库,并从该特定存储库的其他储存库调用来处理关系的保存(每类类型的一个仓库。
  2. 呼叫总的存储库整个对象图和处理所有这一个方法(因此在同一方法中保存所有关系)
  3. 从服务层中,调用聚合的存储库,然后直接在服务层中调用存储库,调用相关类的存储库
  4. 在s之间添加一个额外的图层额外的层内ervice和库和不喜欢选项3

我已经看到在生产代码中所有3个可能的解决方案,但我感兴趣的是干净的解决方案和理由,为什么一个会选择这种方法。

回答

0

对我来说,它将是选项1和2之间的选择(我喜欢尽可能简化“上层服务层”)。

我会选择哪一个将取决于如何使用个别类型的聚合;如果他们是总是(至少当前)用作这个聚合的一部分而不是独立的,我可能会让聚合存储库也处理它们(但可能仍然在单独的方法中),但是如果单个部分也可以独立使用(或者作为其他聚合的一部分),我可能会倾向于为它们分开版本库对象,并从聚合存储库调用这些版本库。