领域驱动模型之ERP单品模块架构设计

该博客探讨了ERP单品模块的架构设计,强调了领域对象、资源库、防腐层和领域服务的角色。领域对象封装行为,资源库处理数据库交互,防腐层保护上下文,而领域服务协调这些组件。文章还提到了数据流转、上下文集成以及在业务扩展时采用微服务和事件驱动模型的可能性,以保持系统的稳定性和灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里写图片描述

  • 模块划分

  • 领域对象
    用户根据持有的单据类型ID,去可用的单据流程池中查找单据流程池,拿到流程池之后,需要确定最终单据管理的操作是什么,相比原始业务对象,领域对象具有了行为


  • 资源库
    一些基础的数据库交互操作,数据库与Elasticsearch缓存同步等操作,相比传统的VO,由资源库屏蔽了敏感的直接对底层访问,相比以前vo,具有更高的内聚,低耦合


  • 防腐层
    在一个上下文中,有时需要对外部上下文进行访问,这时候用到防腐层,对外部上下文进行一次转义,类似dubbo框架中多处用到的transporter,adapter等,如:对资源库进行操作的同时,可能涉及到日志业务的读操作


  • 领域服务
    串联领域对象,资源库和防腐层等一系列领域内的对象行为,对其他的上下文提供结构,即操作的封装,dubbo框架在设计时也大量用到了这种设计方法,如为了兼容性问题,开发多种行为实现,利用SPI动态加载实现方法,达到封装整个实现过程的目的.


  • 数据流转


  • 上下文集成
    通常集成上下文的手段有多种,常见的手段包括开放领域服务接口、开放HTTP服务以及消息发布-订阅机制。补充: 个人认为,事件驱动模型可以在这种业务下发挥很好的优势


  • 分离领域
    下图中领域服务是使用微服务技术剥离开来,独立部署,对外暴露的只能是服务接口,领域对外暴露的业务逻辑只能依托于领域服务。而在Vernon著作中,并未假定微服务架构风格,因此领域层暴露的除了领域服务外,还有聚合、实体和值对象等。此时的应用服务层是比较简单的,获取来自接口层的请求参数,调度多个领域服务以实现界面层功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值