我想知道之间是否有任何区别: 领域驱动设计(DDD) 模型驱动设计(MDD) 我总是在许多文章和公共文献中找到这两个术语,但没有人强调这些差异. 我个人觉得MDA和DDD相距很远. MDA专注于创建
领域驱动设计(DDD)
模型驱动设计(MDD)
我总是在许多文章和公共文献中找到这两个术语,但没有人强调这些差异.
MDA专注于创建不同类型的模型,用于描述不同级别的软件系统.它鼓励对这些模型使用UML,并且可能有很多模型用于从不同的角度描述相当复杂的系统.创建了一些解决方案,如Rational Rose,用于从模型生成软件并使它们与代码保持同步.
与此同时,MDA没有说明您如何与业务沟通以了解其问题域.所有MDA都关注的是解决方案领域.
另一方面,DDD更多地是关于域和语言的知识.简而言之,许多人将DDD描述为“在有界上下文中开发无所不在的语言”.我们鼓励您与领域专家交谈并了解他们的意见.您需要定义这些术语有意义的上下文,因为不同上下文中术语的差异可能会有很大差异.然后将每个上下文分离成高度内聚的组件,并且这些组件的组合形成完整的系统.
DDD中有许多战术模式,如聚合根,实体,价值对象,存储库和工厂.但他们的主要目标是为开发人员提供一些工具来创建适当的抽象,这可以封装领域知识,而不会影响代码的可读性.
DDD最重要的部分是战略模式,如有界上下文,上下文映射和无处不在的语言.如果你不使用它 – 你没有DDD.并不重要,你使用哪种符号来绘制图表(有些只是使用粘滞便笺),这完全是次要的.