2

我已经编程很多年了,最近我一直在尝试应用领域驱动设计中的一些想法,但我仍然在为系统的某些部分取个好名字而苦苦挣扎。

这是一个例子;

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

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

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

我可能应该只有一个“ComputerRepository”,而其他类只负责来自各种来源的数据访问。因为他们需要通用的存储库函数 FindById/Add/Remove/Contains 等,所以我称它们为存储库。

这些类有更好的名称吗?

4

1 回答 1

1

我认为正确的答案取决于ComputerAsset, Deployment,Directory和其他类似的子实体是否以相同的方式是全局可访问的聚合Computer

无论哪种方式,我认为他们应该拥有自己的存储库,而且我认为他们现在的名字很合适。DDD 意义上的“存储库”只是指您使用现有对象的遍历机制(工厂处理新对象的创建)。但是,如果它们不打算在全球范围内访问,只需将这些存储库设置为ComputerRepository.

于 2009-08-25T13:02:24.670 回答