我是领域建模的新手,所以请原谅我问了几个基本问题。我的第一个问题是关于知道何时对域关系建模。我发现有时我觉得所有类似乎都以某种方式与大多数其他类相关,我不清楚何时应该直接对这些关系建模(通过在一个类中持有对另一个类的引用)。
例如,假设我有一个与 Orders 集合相关的 Person 类,并且每个 Order 都与 Products 集合相关(请原谅这个缺乏想象力的例子)。这些实体中的每个 od 在数据库中都有一个对应的表。如果我正在编写一些处理与 Person 关联的产品的客户端逻辑(通过该人的订单),那么拥有 Person.Products 集合似乎很诱人,特别是因为我可以制作一些 SQL 来获取此集合而无需拉回 Persons Orders 集合。这是好的还是坏的设计?如果处理这个问题的更好方法是什么?
其次,关系本质上是上下文的情况呢?继续前面的示例,说我想在人员方法中运行的一些业务逻辑需要处理人员的所有关联订单,这些订单包含特定的产品(即人员订单集合的子集)。我可以构造一些 SQL 来很容易地返回这个子集。问题是我在哪里公开结果?我是否应该在 Person 上放置一个方法,该方法接受 Product 参数并返回 Orders 集合,以便客户端代码看起来像这样?
person.OrdersContaining(Product p)
实体是否应该有多个这样的方法来公开它们关系的不同子集,或者一个人是否应该只有一个 Orders 集合并以其他方式处理子集?
谢谢