如何命名存储库用于数据访问的类?

时间:2009-08-25 12:52:20

标签: design-patterns domain-driven-design data-access

我已经编程了很多年,最近我一直试图应用Domain驱动设计中的一些想法,但我仍然很难决定系统某些部分的好名字。

这是一个例子;

我有一个返回“计算机”对象的WCF Web服务。该对象是包含子实体的聚合根。

子实体从两个不同的数据库和Active Directory加载。

现在我为每个实体“ComputerAssetRepository”,“DeploymentRepository”,“DirectoryRepository”等都有单独的Repository类,然后我有一个“ComputerRepository”调用每个子存储库并将结果返回到“Computer”聚合根实体。

我应该只有一个“ComputerRepository”,而其他类只负责来自各种来源的数据访问。由于他们需要公共存储库函数FindById / Add / Remove / Contains等,我称之为存储库。

这些课程有更好的名称吗?

1 个答案:

答案 0 :(得分:1)

我认为正确的答案取决于ComputerAssetDeploymentDirectory和其他类似的子实体是否是全局可访问的聚合,其方式与{{1}相同是的。

无论哪种方式,我认为他们应该拥有自己的存储库,我认为它们现在已经恰当地命名了。 DDD意义上的“存储库”只是指使用现有对象的遍历机制(工厂处理新对象的创建)。但是,如果它们不是全局可访问的,只需将这些存储库置于Computer内部。