DDD实战(二):分层架构的依赖原则

上次分享了一篇文章(DDD实战(一):如何设计分层架构?) ,接下来继续分享分层架构的依赖原则

一、选择架构目的 

不管选择哪个架构模式主要目的如下:

1、业务边界能够清晰,特别是微服务架构拆分的的时候。

2、业务模型能够具备独立性。

3、业务和技术能够通过领域模型进行沟通(观点达成一致)。

4、技术具备独立性,可以跟随业务的发展而不断迭代成长。

目前业内所熟知的 DDD分层架构、洋葱架构、六边形架构以及阿里出品的COLA,都具备以上特性,但是这些都不会是最终解决方案,所以在选取的时候也要根据团队的整体能力进行评估。

二、依赖原则

本小节主要是讲DDD分层架构中比较重要的依赖原则,如下图所示:

 从上图可以看到每层仅可以和下方的层进行耦合,每一层各司其职,并且只需要关心向下一层实现,各层不进行耦合。

Adapter层(适配层):负责讲外部的请求适配到应用层,以及进入之前的各种校验,可以理解为MVC架构的Controller。

Application(应用层):负责获取输入的信息,并组装成上下文参数的校验,以及调用领域层的业务处理,甚至可以在这一层做一些技术监控指标的个性化处理。

Domain层(模型层):封装业务逻辑,定义领域模型和实体,通俗一点的讲这一层不需要明白数据从哪里来,我就要这样的数据,是面向接口编程。

Intrastructure层(基础设施层):主要是提供给领域层的接口实现(可能是db、redis和mq等),需要做到防腐。如果实际业务中不涉及到业务逻辑,那基础设施层可以直接开放给Adapter调用。

三、代码结构

四、参考源码

4.1 源码地址

ddd-framework: 基于DDD(领域驱动设计)的轻量级快速开发框架,致力于企业技术架构的可沉淀和可传承,解决复杂业务场景的扩展问题,目前已在核心业务领取进行落地。 - Gitee.comhttps://gitee.com/itunion/ddd-framework

4.2 前期准备

拉取Master分支代码
安装必要环境:jdk1.8+、mysql5.7+、redis等
启动 itunion-ddd-web 项目


4.3 访问地址

http://127.0.0.1:8080/itunion-ddd-web/api

猜你喜欢

转载自blog.csdn.net/zhenghhgz/article/details/127087678