模型是一种简化,它是对现实的解释,并把与解决问题密切相关的方面抽象出来,而忽略无关的细节。
软件程序会应用于某个主题区域,这个区域就是软件的领域。
模式是用于解决信息超载问题的工具。
模式是一种知识形式,它对知识进行有选择的简化和有目的的结构化。适当的模型可以使人理解信息的意义,并专注于问题相关的信息。
领域模型并非一种特殊的图,而是图要表达的思想。领域模型是经过严格组织并且精心选择的抽象知识。
建立领域模型并不是要尽可能建立一个符合“现实”的模型。建模是出于某种目的而概括地反映现实。
模型在领域驱动设计中的作用
(1)模型和设计的核心互相影响。
模型与实现之间的紧密联系才使模型变得有用,并确保在模型中所进行的分析能够转换为最终产品。
模型与实现之间的这种紧密结合在维护和持续开发期间也会很有用,因为可以基于对模型的理解来解释代码。
(2)模型是团队所有成员所使用的交流语言的中枢。
在无需翻译的情况下与领域专家进行沟通。
由于语言是基于模型的,自然语言能力可用来对模型本身进行精化。
(3)模型是浓缩的知识。
模型是团队一致认同的领域知识组织方式和最重要元素的区分方式。
模型体现了在选择术语、分解概念和关联概念时所采用的思考方式。
共同的语言使得开发人员和领域专家在将信息组织为模型时能够有效地协作。
模型与实现之间的紧密结合使得早期版本软件的经验可以作为反馈应用到建模过程中。
软件的核心
软件的核心是其为用户解决领域相关的问题的能力。