DDD架构中的领域是什么
1、浅谈领域一词
领域一词在不同人不同行业中都有不同的理解。中文中【领域】有生物学概念、数学概念等多重意义。出自闻一多《文学的历史动向》:“诗,不但支配了整个文学领域,还影响了造型艺术。” 对它的解释有:具体指一种特定的范围或区域、一国主权所达之地、一种专门活动或事业的范围、部类或部门。那么根据字面意思来看,无论何种解释,它指的都是一个范围一个区域。
2、面向对象谈领域
2、既然我们是谈DDD(领域驱动设计,那么就得先知道DDD(领域驱动设计的大概思想,这里先不多做解释,在DDD设计模型中,领域的核心思想是业务
我们都知道代码中有一种思想叫做抽象,而抽象就是把现实中真实存在的一些人、物或者事等等使用抽象化的代码来表示,对于抽象出来的代码我们用一个类表示,这个类有自己的属性有自己的操作,而这个类就是一个对象,我们又叫做实体
3、领域的划分
领域划分的主要思想是从需求出发,通过需求先划分实体。通过上面我们知道领域是多个实体的集合,那么再通过实体划分领域。这样一来我们包含的层级结构一下就出来了,具体我们以一个商城的案例分析一下
2、接下来我们需要对所有实体按照职责相似度,对实体进行归类,每一类我们取一个新的名字,这就是领域。比如我们的订单实体和订单详情实体都是在交易的时候需要的,而营销活动和营销工具都是做推广的,那么我们分别为其取名为交易域和推广域。这也体现了我们之前所说的领域和实体一对多的关系
切忌:以场景来划分领域,我们应该以业务对象聚合来划分领域
4、回顾
以上讲解的就是我们DDD(领域驱动设计中的领域和领域划分,具体我们划分了领域有什么作用,在DDD(领域驱动设计中怎么去使用这种划分,我们在下一篇中再慢慢谈