第二节 客观还是主观?发现还是发明?

根据上一节中的说明,我们知道领域模型揭示问题域的内部组成、结构、行为和机制。那么,它是客观的,还是主观的?领域建模的过程是一种发现,还是一种发明?

客观还是主观

由于领域模型是对问题域内部本质规律性的描述,而问题域是独立于建模者的客观存在,因此不可否认,领域模型有很强的客观性。例如银行业这个问题域,在我们诞生之前就已经存在,而且几乎肯定在我们死后还会存在下去,它是外在于我们的客观存在。我们的领域模型就是用于反映这个客观现实的,你不可能在银行业的领域模型中描述细胞、DNA、器官、光合作用而缺失账户、信用卡、利率、票据、转账等概念。问题域本身引导和限制建模选择。

因为领域模型是一种心智模型,代表我们对问题域的认识和抽象,因此必然有一定的主观性。主要体现在:

  • 建模是对问题域的抽象,而抽象是一种主观的行为。问题域是接近无限复杂的,我们的领域模型不可能反映它的所有方面,而是根据我们的目的,对其进行抽象,只提取我们感兴趣的部分。

abstraction 上图来自Grady Booch等的名著Object-Oriented Analysis and Design with Applications。同样一只猫,在外科医生和老奶奶的眼中的形象大不相同。

  • 你的模型不是我的模型。由于领域建模是由具体的个人——建模者——来进行的,而建模者的能力和倾向各不相同,得出的领域模型必然也各不相同。所以,模型没有对错之分,只有合用还是不合用之分。所以George E. P. Box在Robustness in the Strategy of Scientific Model Building一书中有这样一句名言:

    All models are wrong, some models are useful(所有的模型都是错的,但其中一些还是有用的)。

    所有的模型都是对现实的一种近似。正如物理学家对我们的世界建模,只要模型能够解释现有的现象并能够预测未来的现象,它就具有一定程度的正确性,意味着我们离事实真相更近了一步。

因此我们可以说:

领域模型是我们对问题域客观现实的主观反映,是主观和客观的交汇。

发现还是发明

Copyright © yyang.io 2016 all right reserved,powered by Gitbook该文件修订时间: 2022-01-04 16:46:41

results matching ""

    No results matching ""