DDD 的领域、子域、核心域、通用域和支撑域等重要概念

如何理解领域和子域?

领域

领域是用来限定业务边界和范围的,这也是 DDD 在设计中不断强调边界的原因。

在研究和解决业务问题时,DDD 会按照一定的规则将业务领域进行细分,当领域细分到一定的程度后,DDD 会将问题范围限定在特定的边界内,在这个边界内建立领域模型,进而用代码实现该领域模型,解决相应的业务问题。简言之,DDD 的领域就是这个边界内要解决的业务问题域。

子领域

领域可以进一步划分为子领域。我们把划分出来的多个子领域称为子域,每个子域对应一个更小的问题域或更小的业务范围。

面对错综复杂的业务领域,DDD 是如何使业务从复杂变得简单,更容易让人理解,技术实现更容易呢?

通常的做法就是将问题一步一步地细分,再针对细分出来的问题域,逐个深入研究,探索和建立所有子域的知识体系。当所有问题子域完成研究时,我们就建立了全部领域的完整知识体系了。

1、确定研究对象,即研究领域

这里是一棵桃树 

2,细分

对桃树进行细分,细分为器官:营养器官和生殖器官两种。

营养器官:根、茎和叶,

生殖器官:花、果实和种子

3,子域进一步细分为多个子域

对器官进行细分,将器官细分为组织。比如,叶子器官可细分为保护组织、营养组织和输导组织等

4,对组织进行细分,将组织细分为细胞,细分到研究的最小单元。

领域知识总结

问题域:桃树

问题子域:根、茎、叶、花、果实和种子

子域再细分为多个子域:叶子器官 可细分为保护组织、营养组织和输导组织

细分到研究的最小单元:细胞

聚合:细胞(包含细胞核、线粒体、细胞膜)

聚合根、实体以及值对象:细胞核、线粒体、细胞膜

如何理解核心域、通用域和支撑域?

在领域不断划分的过程中,领域会细分为不同的子域,子域可以根据自身重要性和功能属性划分为三类子域,它们分别是:核心域、通用域和支撑域。

决定产品和公司核心竞争力的子域是核心域。

同时被多个子域使用的通用功能子域是通用域。

是必需的,但既不包含决定产品和公司核心竞争力的功能,也不包含通用功能的子域,它就是支撑域。

总结

领域的核心思想就是将问题域逐级细分,来降低业务理解和系统实现的复杂度。通过领域细分,逐步缩小微服务需要解决的问题域,构建合适的领域模型,而领域模型映射成系统就是微服务了。

核心域、支撑域和通用域的主要目标是:通过领域划分,区分不同子域在公司内的不同功能属性和重要性,从而公司可对不同子域采取不同的资源投入和建设策略,其关注度也会不一样。 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我来回答您的问题。在DDD中,实体是指具有唯一标识符的对象,它们具有生命周期和状态,并且可以通过它们的标识符进行跟踪和识别。例如,在一个电商系统中,商品可以被视为一个实体,因为它们具有唯一的商品编号和状态(如库存量)。 值对象是指没有唯一标识符的对象,它们的相等性是通过它们的属性值来确定的。例如,在一个邮件系统中,邮件地址可以被视为一个值对象,因为它们的相等性是通过它们的属性(如用户名和名)来确定的。 聚合根是指一组相关实体和值对象的集合,它们共同形成了一个有意义的整体。聚合根具有唯一标识符,并且可以通过它们的标识符进行跟踪和识别。例如,在一个博客系统中,博客可以被视为一个聚合根,因为它包含了多篇文章和评论,这些文章和评论共同形成了一个有意义的整体。 领域是指一个业务领域,它包含了一组相关的概念、规则和流程。例如,在一个银行系统中,存款和贷款可以被视为该系统的领域子域是指领域中的一个子集,它包含了一组相关的概念、规则和流程。例如,在一个电商系统中,支付可以被视为该系统的子域核心是指领域中最重要、最核心的部分,它包含了系统的主要业务逻辑和价值。例如,在一个医院系统中,病人管理可以被视为该系统的核心支撑是指领域中的辅助部分,它包含了一些支持性的功能和服务。例如,在一个电商系统中,物流管理可以被视为该系统的支撑通用是指可以被多个领域共享的一些通用概念和规则。例如,在多个系统中都需要进行身份验证和授权,这些功能可以被视为通用。 防腐层是指用于与外部系统进行交互的一层,它可以将外部系统的数据转换为本地系统的数据模型。例如,在一个电商系统中,与支付宝进行交互时,可以使用防腐层将支付宝的数据转换为本地系统的数据模型。 DTO是指数据传输对象,它用于在不同层之间传输数据。例如,在一个电商系统中,可以使用DTO将订单信息从控制器层传输到服务层。 希望这些解释能够帮助您更好地理解DDD中的各种概念

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值