7|领域建模原理:DDD领域建模和传统方法有什么区别?

前面几节课,我们一起完成了行为需求和领域建模,重点在于实践。但是,如果仅停留在实践层面,不去了解背后的原理,我们就会知其然而不知其所以然,最终还是不能很好地进行实践。

所以,在对领域建模有了一定的感性认识以后,今天我们上升到理论层面,一起来理解模型驱动设计的本质含义。然后再来深入探讨“统一语言”,以及它和领域建模的关系。

什么是领域模型?

在讨论什么是领域模型之前,咱们先说说什么是模型。

先来看几个例子。比如说你去买房,售楼处都会有一个沙盘模型,这样你就可以看到楼的外观、朝向、周边环境等等。

但是如果要盖这个楼盘,靠沙盘模型就不行了,需要有一套详细的建筑图纸,图纸也是模型。为了对大楼进行设计,还要进行各种计算,计算用的公式也是模型,称为数学模型。另外,小孩玩的玩具车、玩具枪什么的,也是模型。事实上,现代生产和生活中,充满着各种各样的模型。

从这些例子里,咱们可以发现模型的几个共同特点。

首先,模型是以解决特定问题为目的的。例如沙盘模型是为了卖房,而建筑图纸是为了盖楼。没有目的就谈不上模型。

第二,模型都是对现实世界或人们思维中的事物进行的模拟。例如沙盘模型和建筑图纸都是对建筑物的模拟,而玩具车是对真车的模拟。

第三,模型总是提取了被模拟事物中的部分信息,而忽略掉了其他大部分信息。例如,沙盘模型提取了楼盘的外观信息,但是忽略了内部结构和建筑材料信息。而建筑图纸反映了内部结构信息,但忽略了外观信息。到底提取哪些信息,忽略哪些信息,取决于模型的目的。

第四,模型可以有多种表现形式,例如图纸、影像、公式以及电脑中的文件等等。具体采用哪种形式,取决于要解决的问题和当前的技术水平。

最后,模型是一种人造物,大自然本身是不存在模型的。

软件开发是一个建模过程

说到这儿,不知道你发现了没有?其实计算机软件也是一种模型。这是因为,计算机软件也是为了满足业务需求,对现实世界的事物和逻辑进行的模拟。所以,我们开发计算机软件的过程也是一个建模过程。

软件本质上是运行在机器上的一串二进制流,我们姑且称之为“机器模型”。我画了一张图,表示了现实世界和机器模型之间的关系。

7|领域建模原理:DDD领域建模和传统方法有什么区别?_第1张图片

我们看到,在机器模型和丰富多彩的现实世界之间存在着巨大的鸿沟,所以,用二进制直接为现

你可能感兴趣的:(DDD,java)