什么是DDD

发布于 2021-12-05  256 次阅读


Domain Driven Design 领域驱动设计

1.DDD是为了解决快速变化,复杂系统的设计问题的(一切围绕“复用”)

尽量将业务逻辑与技术代码抽离,划分界限,这样我们可以随便切换技术选型,或者对业务进行单独改造

如下,把业务逻辑checkservice抽离出来,后续业务切换都在 checkservice 中,不会影响下面的代码,封装checkservice应对业务变化做出的改变,称为”防腐层“。

2.各领域自治,可以自我发展

领域与领域之间互不影响,可以通过领域服务来相互调用。

3.MVC的落地实现最差也差不到哪去(毕竟是现在非常流行的模式),但是DDD,如果设计不当,那将会比MVC要差,且对程序员的要求也是非常高的,如果做的好,的确可以应对业务的变化(需要了解业务,预测业务)

4.贫血模型,即普通的pojo类,而DDD中的充血模型,即类中还包含业务方法

5.可变性是实体的特点,不变性是值对象的本质

6. 聚合体现的是一种整体与部分的关系,当整体不存在是,部分就失去了意义;

聚合根-外部访问的唯一入口

推荐视频:2小时掌握宇宙最强DDD(Domain driven design)DDD领域驱动设计实战_哔哩哔哩_bilibili

[2022]年想当架构师必须要会的DDD领域驱动涉及+实战!清华资深架构师讲解大厂未来架构之道!_哔哩哔哩_bilibili

DDD 微服务落地实战_哔哩哔哩_bilibili