设计理念
1. DDD架构演进
1.1 DDD依赖倒置架构
Vernon在它的《实现领域驱动设计》一书中提到了采用依赖倒置原则改进的方案。
所谓的依赖倒置原则指的是:高层模块不应该依赖于低层模块,两者都应该依赖于抽象,抽象不应该依赖于细节,细节应该依赖于抽象。
从图中可以看到,基础设施层位于其他所有层的上方,接口定义在其它层,基础实施实现这些接口。依赖原则的定义在DDD设计中可以改述为:领域层等其他层不应该依赖于基础设施层,两者都应该依赖于抽象,具体落地的时候,这些抽象的接口定义放在了领域层等下方层中。这也就是意味着一个重要的落地指导原则: 所有依赖基础实施实现的抽象接口,都应该定义在领域层或应用层中。
采用依赖倒置原则改进DDD分层架构除了上面说的DIP的好处外,还有什么好处吗?其实这种分层结构更加地高内聚低耦合。每一层只依赖于抽象,因为具体的实现在基础设施层,无需关心。只要抽象不变,就无需改动那一层,实现如果需要改变,只需要修改基础设施层就可以了。
1.2 SIDE-EFFECT-FREE模式和CQRS架构
SIDE-EFFECT-FREE模式被称为无副作用模式,熟悉函数时编程的朋友都知道,