首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >域驱动设计查找表作为聚合根

域驱动设计查找表作为聚合根
EN

Stack Overflow用户
提问于 2012-03-25 18:19:19
回答 1查看 284关注 0票数 2

我们有一个web应用程序,您可以访问两个服务/函数("Buy“和"Rent")。在第一步中,您必须从ProductCategory中选择一个DropDownList。并不是每个产品类别都能被购买或出租。我们有5个产品类别:

  • A: Buy/Rent
  • B: Buy/Rent
  • C: Buy/Rent
  • D: Only Buy
  • E: Only RentH 210F 211

我如何以域驱动的方式设计它?在我的观点中,购买/租赁财产不是ProductCategory的财产,而是服务本身的财产:

代码语言:javascript
复制
public class Service
{
     public string Name; // Buy or Rent
     public List<ProductType> AllowedTypes; 
}

编辑第二个示例:

这两个服务都有一些共享状态(例如创建或完成),但也有特殊状态(例如,创建或完成)。“购买-状态-1”)。对于这两个服务使用相同的状态类是个好主意吗?或者更好的是每个服务都有一个专门的类BuyStatus/RentStatus。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-25 18:36:07

我认为这取决于“买/租”和“只买/只租”的关系是静态还是动态

如果这个关系是静态的(一次性的),那么直接在ProductCategory上拥有这个信息就更简单了。班级越少越好。

另一方面,如果这种关系是动态的,那么让另一个负责维护这种知识的对象可以更容易地管理动态状态(例如,一个产品只需要租一段时间,然后“买/租”一段时间等等)。

这遵循oop规则,即属性只是值,当属性变得更加复杂时(例如,它们在时间上发生变化,您必须跟踪所有更改),然后将它们移动到单独的类中。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9862734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档