Gra*_*zar 0 c# domain-driven-design aggregateroot aggregates
我是 DDD 的初学者,我尝试用 C# 优雅地建模下一个场景:
基本上只有一个名称属性和必须按特定顺序执行的项目列表的模板。
public class Template
{
public string Name { get; set; }
public List<Item> Items { get; set; }
}
public class Item
{
public string Name { get; set; }
public int Order { get; set; }
}
Run Code Online (Sandbox Code Playgroud)一种称为 Profile 的类型。
public class Profile
{
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)profile 类的意思是
这看起来像是聚合根是模板,其中包含项目列表和配置文件列表。但我觉得按配置文件名称搜索需要我搜索具有给定名称的配置文件的所有模板。不知何故,对于具有 CRUD 背景的人来说,这似乎要付出高昂的代价。此外,配置文件是使用模板的配置文件,并且让模板了解使用它的配置文件似乎是错误的。
你如何建模?这里的聚合根应该是什么?是不止一个吗?如果您想从 UI 中使用搜索,如何执行搜索?
不。当你需要学习 DDD 时,不要开始元建模和过度抽象。这是一个非常糟糕的主意,因为它会将你的注意力集中在与学习 DDD 无关的事情上,会分散你的注意力,并会导致你做出错误的决定。
你需要从解决具体问题开始。抽象需要来自具体的解决方案。在实现(至少三个)它们之后,是时候看看抽象了
| 归档时间: |
|
| 查看次数: |
577 次 |
| 最近记录: |