领域建模-理解业务知识

124 阅读2分钟

基本概念

领域建模的目的:

  1. 将知识可视化,准确、深刻地反映领域知识,并且在业务和技术人员之间达成一致;
  2. 指导系统的设计和编码,也就是说,领域模型应该能够比较容易地转化成数据库模式和代码实现。

领域模型,主要识别领域对象(domain object),领域对象之间的关系,以及领域对象的关键属性。领域模型通常用 UML 来画。

在 UML 中,这个符号叫做**“类”(class)。**比如说,张三是员工,李四也是员工,我们可以说,员工指一类事物。这时我们可以用 UML 中的术语说,**员工是领域对象的一个类,张三和李四是这个类的实例。**在领域建模过程中,我们说领域对象时,有时指类,有时指实例,一般可以通过上下文来区分。此外,DDD 中将领域对象又分成实体(entity)和值对象(value object)。“员工”“账户”等都是实体。

如何识别实体

领域名词入手,分成几部分来建模。

  1. 识别“一对一”关联(1:1)

  2. 识别“一对多”关联(1:*)

  3. 多重性(1:0..*)

进行抽象

带有共性的名词进行抽象

识别“自关联”

一个自己到自己的一对多关联。如:一个组织可以有多个组织作为自己的下级;而一个组织只能有一个组织作为自己的上级

增加“约束”

在 UML 中,用大括号括起来的内容称为“约束”(constraint)。和一般性的注释不同,**凡是约束,必须在程序中的某个地方进行实现。**约束也是一种业务规则

识别“多对多”关联

如:一个员工可以担任多个岗位,而一个岗位也可以有多个员工担任。员工和岗位之间是“多对多”关联。

更丰富的“多重性”

参考:【手把手教你落地 DDD-钟敬】