领域驱动设计-day3

今天主要是学习DDD第七讲分层架构

一.DDD分层架构:有效降低层与层之间的依赖

首先看下整体的架构图

1.用户接口层

用户接口层负责向用户显示信息和解释用户指令。这里的用户可能是:用户、程序、自动化
测试和批处理脚本等等。
2. 应用层
应用层是很薄的一层,理论上不应该有业务规则或逻辑,主要面向用例和流程相关的操作。
但应用层又位于领域层之上,因为领域层包含多个聚合,所以它可以协调多个聚合的服务和
领域对象完成服务编排和组合,协作完成业务操作。
此外,应用层也是微服务之间交互的通道,它可以调用其它微服务的应用服务,完成微服务
之间的服务组合和编排。
还有,应用服务还可以
进行安全认证、权限校验、事务控制、发送或订阅领域事件等。
 
3. 领域层
领域层的作用是实现企业核心业务逻辑,通过各种校验手段保证业务的正确性。领域层主要
体现领域模型的业务能力,它用来表达业务概念、业务状态和业务规则。
领域层包含聚合根、实体、值对象、领域服务等领域模型中的领域对象。
 
4. 基础层
基础层是贯穿所有层的,它的作用就是为其它各层提供通用的技术和基础服务,包括第三方
工具、驱动、消息中间件、网关、文件、缓存以及数据库等。比较常见的功能还是提供数据
库持久化。
基础层包含基础服务,它采用依赖倒置设计,封装基础资源服务,实现应用层、领域层与基
础层的解耦,降低外部资源变化对应用的影响。
DDD 分层架构最重要的原则是什么?
DDD 分层架构有一个重要的原则: 每层只能与位于其下方的层发生耦合。
而架构根据耦合的紧密程度又可以分为两种:严格分层架构和松散分层架构。优化后的
DDD 分层架构模型就属于严格分层架构,任何层只能对位于其直接下方的层产生依赖。而
传统的 DDD 分层架构则属于松散分层架构,它允许某层与其任意下方的层发生依赖。
为了服务的可管理,一般采用严格分层架构。
试想下,如果领域层中的某个服务发生了重大变更,那该如何通知所有调用方同步调整和升
级呢?但在严格分层架构中,你只需要逐层通知上层服务就可以了。

总结:理解清楚DDD 的架构设计,我们在写代码的时候,才能明白,代码要具体写到哪里,可见DDD架构对学习领域驱动设计的重要性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值