知识卡片
领域设计代码三层模型结构
内容
规范化模型结构把关于系统的一切事实分到三层,从抽象到具体:领域模型描述现实世界中不受你控制的不变事实(如”一周有7天”,或Yinzer网站里”广告”“联系方式”这类领域类型本身的定义);设计模型描述要构建的系统,处于设计者控制之下,由递归嵌套的边界模型(只含对外可见接口)和内部模型(含内部实现)组成,允许暂缓决定低层细节;代码模型是系统源代码本身,是对设计的完整承诺,至少完整到能在机器上运行。三层分工的价值是把不同性质的事实(”计费周期30天”归领域、”字体资源必须显式分配”归设计、”地址存为varchar(80)“归代码)分流到各自该待的地方,分析某一层问题时不会被其他层的细节干扰。
结构图:
flowchart TD
A["领域模型<br/>现实世界不变事实<br/>不受设计者控制"] --> B["设计模型<br/>要构建的系统<br/>边界模型(对外接口)+内部模型(内部实现)"]
B --> C["代码模型<br/>源代码本身<br/>对设计的完整承诺"]
参考来源
- 位置:《恰如其分的软件架构》第7章《软件架构的概念模型》7.1节《规范化模型结构》、7.2节《领域模型、设计模型和代码模型》(源文件:_epub-src/OEBPS/text00067.html, text00068.html)
- 结论依据:原文定义领域模型描述不变的现实事实、设计模型描述受控的系统设计(含边界/内部模型)、代码模型是对设计的完整承诺,并说明这种分层能把不同事实分流到各自对应的模型中简化分析。
- 原始内容:领域模型描述了领域中不变的事实;设计模型描述了所要构建的系统;而代码模型则描述了系统的源代码……设计模型由递归嵌套的边界模型和内部模型组成……代码模型……包含了完整的对设计的承诺。