码迷,mamicode.com
首页 > 其他好文 > 详细

关于DDD如何落地的随笔

时间:2020-04-20 12:02:28      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:bsp   构造   构造函数   明细表   原则   异步   model   src   消息   

1.使用EF的Model First的模式进行开发

  如果还是先建数据库表的话,脑子里想着就是表的设计原则,关联关系之类的, 生成出的实体不是一个好的领域模型, 所以我们应该先根据业务来建立一个领域模型,当然不知道怎么建模型的话,我们可以根据怎么建表的思路来建模型

2. 每个模型的无参构造函数都设为private或protected,提供一个公有的带参数的构造函数, 可以在这里对参数进行一些验证之类的操作。

3.聚合、实体和值对象

  聚合和实体都一一对应着我们数据库的一张表,基本上都是聚合, 对于那种父子表,明细表之类的,业务中不会单独去取的那种表的数据, 比方订单明细表, 我们不会在系统中单独的去查询订单明细,都是先找到订单才去看明细,这时候订单表就是聚合,明细表就建为实体, 聚合有上下文,可以进行查询之类的操作。实体只能在先查到父聚合,在聚合里面进行操作实体。

  值对象我们可以理解为表中 那些冗余的数据,这里也要用,那里也要用的字段。可以建成值对象。值对象可以在实体中,也可以在聚合中

4.领域事件

  领域事件就是一些通知类的额外异步操作。感觉可以放在消息队列里面的都可以搞成领域事件, 比方下单减库存, 就可以在订单聚合的构造函数里面,发布一个领域事件。

 

我最近搭的项目框架结构

技术图片

 

 

技术图片

 

 技术图片

 

关于DDD如何落地的随笔

标签:bsp   构造   构造函数   明细表   原则   异步   model   src   消息   

原文地址:https://www.cnblogs.com/mchuang/p/12736673.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!