domain-driven-design - DDD/存储库

标签 domain-driven-design repository

我是 DDD 的新手。我的 SQL 表包含一个样式列表,每个样式都有颜色和大小。现在,我正在开发一个应用程序,用户将在其中看到三个下拉列表,一个用于样式,一个用于颜色,一个用于尺寸。现在最初这些下拉列表加载了不同的值。用户然后可以选择一种样式,然后系统将能够找到该选定样式的所有颜色/尺寸。用户可以对颜色做同样的事情,它会加载与所选颜色和尺寸相匹配的样式。你明白了。

这些是我的基本要求。现在我正在考虑为样式创建一个存储库 (StyleRepository) 并让它加载所有样式,并在需要时加载子颜色和子尺寸。

但是,如我的应用中所述,我还需要加载不同的颜色或尺寸。现在建议创建三个存储库而不是 StyleRepository、ColorRepository、SizeRepository 还是我会创建一个完全不同的存储库?

如前所述,我对此很陌生,非常感谢您的建议。

谢谢

最佳答案

样式似乎是您的根聚合对象。这就是您构建存储库的基础。

由于每个样式都有该样式允许的特定颜色和尺寸子集,因此每个样式都应包含一个颜色和样式列表。

public class Style
{
   public IList<Color> Colors { get; set;}
   public IList<Size> Sizes { get; set;}
}

然后您的存储库将有一个 FindAll() 方法来返回所有样式。每种样式都有自己的颜色和尺寸列表,因此无需再次点击存储库来获取这些。当用户从下拉列表中选择特定样式时(希望您已经绑定(bind)了样式对象),那么您可以从所选对象中获取颜色和尺寸列表并填充其他下拉列表。

当用户选择特定的样式、颜色和尺寸时,我会假设它们保存在单独的类中,例如 SelectedStyle 类,它只包含一个颜色和尺寸属性。

public class SelectedStyle
{
   public Color Color { get; set;}
   public Size Size { get; set;}
}

关于domain-driven-design - DDD/存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/682549/

相关文章:

c# - DDD 上的免费视频(截屏视频、网络广播...)培训

java - Maven 项目定义的存储库不起作用

maven - Maven Central 是否还没有使用 CDN 进行分发?

github - 从 GitHub 导入到 Azure DevOps 时出现“克隆 URL 不正确”

c# - DDD - 将 ConfigurationService 注入(inject)实体

asp.net - 领域驱动设计——数据库事务管理

orm - DDD : the Repository contract

c# - 在 Visual Studio 中将应用程序拆分为多个解决方案之前,我应该考虑哪些因素?

java - Spring 。异常翻译如何工作?

java - 用java实现存储库服务