什么是DDD?
以下是考虑使用DDD的原因:
- 提供解决困难问题的原则和模式
- 将复杂的设计基于领域模型
- 在技术和领域专家之间发起创造性的协作,以迭代地完善解决领域问题的概念模型。
DDD包含4个层:
- Domain:这是定义应用程序的域和业务逻辑的地方
- Infrastructure:此层包含独立于我们的应用程序而存在的所有内容:外部库,数据库引擎等。
- Application:该层用作域和界面层之间的通道。将请求从接口层发送到域层,由域层处理请求并返回响应。
- Interfaces:该层包含与其他系统交互的所有内容,例如Web服务,RMI接口或Web应用程序以及批处理前端。
其中domain层不依赖其余层,它定义repository接口,infrastructure层会实现;application层会调用domain、infrastructure层;interfaces层个别调用application层或者infrastructure层。