微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

域驱动设计 – DDD和MDD之间的差异

我想知道之间是否有任何区别:

领域驱动设计(DDD)
模型驱动设计(MDD)
我总是在许多文章和公共文献中找到这两个术语,但没有人强调这些差异.

解决方法

我个人觉得MDA和DDD相距很远.

MDA专注于创建不同类型的模型,用于描述不同级别的软件系统.它鼓励对这些模型使用UML,并且可能有很多模型用于从不同的角度描述相当复杂的系统.创建了一些解决方案,如Rational Rose,用于从模型生成软件并使它们与代码保持同步.

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

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

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

DDD最重要的部分是战略模式,如有界上下文,上下文映射和无处不在的语言.如果你不使用它 – 你没有DDD.并不重要,你使用哪种符号来绘制图表(有些只是使用粘滞便笺),这完全是次要的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐