3.1 模式: Model-Driven Design
严格按照基础模型来编写代码,能够使代码更好地表达设计含义,并且使模型与实际的系统 相契合。
如果整个程序设计或者其核心部分没有与领域模型相对应,那么这个模型就是没有价值的, 软件的正确性也值得怀疑。同时,模型和设计功能之间过于复杂的对应关系也是难于理解的,在 实际项目中,当设计改变时也无法维护这种关系。若分析与和设计之间产生严重分歧,那么在分 析和设计活动中所获得的知识就无法彼此共享。
MODEL-DRIVEN DESIGN(模型驱动设计)不再将分析模型和程序设计分离开,而是寻求一种 能够满足这两方面需求的单一模型。不考虑纯粹的技术问题,程序设计中的每个对象都反映了模型中所描述的相应概念。这就要求我们以更高的标准来选择模型,因为它必须同时满足两种完全不同的目标。
因此:
软件系统各个部分的设计应该忠实地反映领域模型,以便体现出这二者之间的明确对应关系。我们应该反复检查并修改模型,以便软件可以更加自然地实现模型,即使想让模型反映出更 深层次的领域概念时也应如此。我们需要的模型不但应该满足这两种需求,还应该能够支持健壮 的UBIQUITOUS LANGUAGE(通用语言)。
从模型中获取用于程序设计和基本职责分配的术语。让程序代码成为模型的表达,代码的改 变可能会是模型的改变。而其影响势必要波及接下来相应的项目活动。
完全依赖模型的实现通常需要支持建模范式的软件开发工具和语言,比如面向对象的编程。
3.2 建模范式和工具支持
像C这样的语言并不适用于MODEL-DRIVEN DESIGN,因为没有适用于纯粹过程语言的建模范式
面向对象设计是目前大多数