我是 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/