领域驱动设计 DDD

DDD 是什么

一般情况下,系统分析和系统设计都是分离的。比如,当我们拿到一个需求后,先梳理业务逻辑,再确定需要哪些表。表确定后再构建数据模型(DO),DO 只有属性和 setter、getter 方法,然后通过一个或多个service来完成业务逻辑的处理。这种模式我们可以称它为面向数据库开发。

而 DDD 则打破了这种隔阂,提出了领域模型的概念,统一分析和设计,使得软件能够更灵活快速跟随需求变化。DDD 的特点在于:接触到需求第一步就是考虑领域模型,通过领域模型来链接业务,领域模型准确反映了业务语言,看到到领域模型代码,就看到了业务需求。

两者的优缺点在什么地方呢?

面向数据库的开发模式的优点是,简单快捷,开发模式固定,新人上手快。缺点是随着业务的增长,类的数量快速增长,软件的复杂度会不断上升。DDD 的优点就是好的领域模型能有效的控制系统复杂度。但是难点也在这里,DDD 主要难点是领域发现和领域建模,想做好 DDD,需要对它有足够深入的了解。

参考资料

领域驱动设计(DDD:Domain-Driven Design)

posted @ 2023-07-17 23:00  xfcoding  阅读(26)  评论(0编辑  收藏  举报