当用户故事提到父母时,行为应该在哪里,但行动是针对孩子的?

Byr*_*ahl 5 c# entity domain-driven-design class

我有一个StoreOwner实体.StoreOwner有一个Store属性.

public class Product { }

public class Store { 
    public IEnumerable<Product> Products { get; private set; }
}

public class StoreOwner { 
    public Store Store { get; private set }
}
Run Code Online (Sandbox Code Playgroud)

我有以下用户故事:

作为商店所有者,我可以将商品添加到商店.

"将商品添加到商店"的行为应该在哪里生活?在StoreOwner或商店?

如果它是商店,那么方法名称是什么?

Ada*_*rth 4

我会将其放入 中Store,因为我猜测产品集合是 中的子实体Store。类似于Store.AddProduct()暴露产品集合。

如果有逻辑确保只有当前所有者可以做到这一点,我相信只有在已经了解所有者的情况下才可以选择此操作,但在尝试所有操作之前绝对应该进行验证。StoreStoreAddProduct

该部分看起来像一个用户角色,因此也许这属于您的 UI 控制器,或者如果当前用户实际上是商店所有者,则可能将其纳入用户角色并对其进行授权。