为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第16天+ DDD传统四层架构和洋葱模型

标签:
Java

课程名称:DDD(领域驱动设计)思想解读及优秀实践

课程章节: 战略设计

课程讲师: 尤达_技术咖啡

DDD****传统四层架构

接口层消息路由,返回和接收对象(消息协议)解析和组装。

**应用层 Application Layer 定义软件要完成的任务,**并且指挥协调领域对象进行不同的操作。该层不包含业务领域知识。

**领域层:**实体对象和值对象,service领域服务,和仓储层(repository 主要作用就是表的对象和返回对象进行解耦,表结构对象,重新组装成上层需要的对象。)

领域层 Domain Layer 或称为模型层,系统的核心,负责表达业务概念,业务状态信息以及业务规则。即包含了该领域(问题域)所有复杂的业务知识抽象和规则定义。该层主要精力要放在领域对象分析上,可以从实体,值对象,聚合(聚合根),领域服务,领域事件,仓储,工厂等方面入手

基础设施层 Infrastructure Layer主要有2方面内容:一是为领域模型提供持久化机制,当软件需要持久化能力时候才需要进行规划;一是对其他层提供通用的技术支持能力,如消息通信,通用工具,配置等的实现;(目前项目:持久化dao,数据库表对应的对象,远程访问)

代码结构:

3,DDD传统四层架构主要解决的问题?

1,分离关注点:每一层都有自己的职责

2,领域模型更独立

3,单项依赖

4,DDD传统四层架构的缺陷?

1,领域层强依赖基础设施层:例如,领域层的repository,会直接调用基础设施层的dao操作表。形成了强耦合,怎么解决这个强依赖问题**。就是通过依赖倒置:repository的实现放到基础设施层,然后装配到领域层。**

5,依赖倒置,就是为了解决强调用的关系,出现了洋葱架构(六边形)架构,就是为了实现依赖倒置

它的思想就是把领域模型放到核心的位置,领域模型是独立的,不会直接强依赖其他层,而通过适配器来完成领域模型和外层的数据交换。

6,将DDD传统四层架构转换成洋葱(六边形)模型?

1,将repository(**仓储层主要是为了完成:领域层和数据存储层的数据交换)**的实现,放到适配器模块中,接口留在领域层。

2,远程过程调用,把接口放到了领域层,把实现也放到了基础层。本质上,远程调用也是将远程数据转成领域层的数据,所以将接口放到了领域层。

3,适配器层要实现,接口层的功能,路由和(消息分发)接收和返回对象的组装

7,洋葱架构的优点?

8,总结

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消