首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DDD与MDD的区别

DDD与MDD的区别
EN

Stack Overflow用户
提问于 2017-02-01 21:55:46
回答 2查看 3.2K关注 0票数 8

我想知道以下两项是否有分别:

领域驱动设计(DDD)模型驱动设计(MDD)我总是在许多文章和公共文献中找到这两个术语,但没有人强调它们之间的区别。

EN

回答 2

Stack Overflow用户

发布于 2017-02-07 04:04:51

我个人发现MDA和DDD相去甚远。

MDA专注于创建不同类型的模型,这些模型在不同的层次上描述软件系统。它鼓励对这些模型使用UML,并且可以从不同的角度生成许多这样的模型来描述相当复杂的系统。创建了一些解决方案,比如Rational Rose,用于从模型生成软件,并使它们与代码保持同步。

同时,MDA没有说明您如何与业务沟通以了解他们的问题域。所有MDA关注的都是解决方案领域。

另一方面,DDD更多的是关于领域和语言的知识。简而言之,许多人将DDD描述为“在有界上下文中开发无处不在的语言”。鼓励您与领域专家交谈,了解他们在说些什么。您需要定义这些术语有意义的上下文,因为不同上下文中的术语差异可能非常不同。然后,每个上下文被隔离为一个高度内聚的组件,这些组件的组合形成了一个完整的系统。

DDD中有许多战术模式,如聚合根、实体、值对象、存储库和工厂。但它们的主要目标是为开发人员提供一些工具来创建适当的抽象,这些抽象可以在不影响代码可读性的情况下封装领域知识。

DDD最重要的部分是策略模式,如有界上下文、上下文映射和无处不在的语言。如果你没有使用这个--你没有DDD。不管你用哪种符号来绘制图表(有些只是使用便签),这完全是次要的。

票数 4
EN

Stack Overflow用户

发布于 2017-02-01 22:14:00

这两种设计方法非常相似。请查看此StackOverflow链接,获得有关此主题的一些很好的、详细的答案:

Domain Driven Design vs Model Driven Architecture

为了总结链接中的答案,这两种方法都专注于在设计解决方案之前对问题进行准确建模。一般来说,DDD被认为是更抽象的,没有特别建议的技术或设计工具。MDD/MDA被认为是更具体的,并建议使用UML进行设计工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41981559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档