3

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

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

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

如前所述,我对此相当陌生,并会感谢您的建议。

谢谢

4

2 回答 2

3

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

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

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

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

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

public class SelectedStyle
{
   public Color Color { get; set;}
   public Size Size { get; set;}
}
于 2009-03-25T17:57:44.353 回答
0

由于您的情况下的颜色是样式使用的实际颜色,而不仅仅是抽象颜色列表(如在绘画应用程序中),我会使用 StyleRepository 和添加方法,如 GetAllUsedColors()。

于 2009-03-25T17:23:04.517 回答