【问题标题】:How do I name classes that a Repository uses for data access?如何命名存储库用于数据访问的类?
【发布时间】:2010-11-22 14:54:52
【问题描述】:

我从事编程多年,最近我一直在尝试应用领域驱动设计的一些想法,但我仍然难以为系统的某些部分取个好名字。

这是一个例子;

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

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

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

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

这些类有更好的名字吗?

【问题讨论】:

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


    【解决方案1】:

    我认为正确的答案取决于ComputerAssetDeploymentDirectory 和其他类似的子实体是否像 Computer 一样是全局可访问的聚合。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-19
      • 2018-03-17
      • 1970-01-01
      • 2020-12-03
      • 1970-01-01
      • 2012-01-17
      相关资源
      最近更新 更多