当前位置:网站首页>DDD思维架构学习
DDD思维架构学习
2022-07-23 23:30:00 【你好y】
服务架构
[Java开发架构篇:初识领域驱动设计DDD落地](https://segmentfault.com/a/1190000022678470)

- 应用层{application}
- 应用服务位于应用层。用来表述应用和用户行为,负责服务的组合、编排和转发,负责处理业务用例的执行顺序以及结果的拼装。
- 应用层的服务包括应用服务和领域事件相关服务。
- 应用服务可对微服务内的领域服务以及微服务外的应用服务进行组合和编排,或者对基础层如文件、缓存等数据直接操作形成应用服务,对外提供粗粒度的服务。
- 领域事件服务包括两类:领域事件的发布和订阅。通过事件总线和消息队列实现异步数据传输,实现微服务之间的解耦。
- 领域层{domain}
- 领域服务位于领域层,为完成领域中跨实体或值对象的操作转换而封装的服务,领域服务以与实体和值对象相同的方式参与实施过程。
- 领域服务对同一个实体的一个或多个方法进行组合和封装,或对多个不同实体的操作进行组合或编排,对外暴露成领域服务。领域服务封装了核心的业务逻辑。实体自身的行为在实体类内部实现,向上封装成领域服务暴露。
- 为隐藏领域层的业务逻辑实现,所有领域方法和服务等均须通过领域服务对外暴露。
- 为实现微服务内聚合之间的解耦,原则上禁止跨聚合的领域服务调用和跨聚合的数据相互关联。
- 基础层{infrastructrue}
- 基础服务位于基础层。为各层提供资源服务(如数据库、缓存等),实现各层的解耦,降低外部资源变化对业务逻辑的影响。
- 基础服务主要为仓储服务,通过依赖反转的方式为各层提供基础资源服务,领域服务和应用服务调用仓储服务接口,利用仓储实现持久化数据对象或直接访问基础资源。
- 接口层{interfaces}
- 接口服务位于用户接口层,用于处理用户发送的Restful请求和解析用户输入的配置文件等,并将信息传递给应用层。
边栏推荐
猜你喜欢

C # introductory series (XXVIII) -- query syntax of LINQ

头插法创建链表并输出所有元素

The I2C interface mode offline burning operation method of h7-tool has been released (2022-07-16)

How to migrate databases in the flask framework

USB Foundation

PHP(2)

At the forefront of the times, Huawei aims at the wind and sea of digital finance

Redis管道技术/分区

Structured Streaming 编程模型(Input Table、Result Table、Output Mode...)

BGP routing, MPLS
随机推荐
STM32F4查看系统各部分频率
A great open source micro community light forum source code
Entropy weight method to optimize TOPSIS (matlab)
PHP(2)
J9 number theory: how can we overcome the fomo phenomenon in the digital industry?
solo 文章标题会过滤掉部分标签
Exch:pop3 and IMAP4 operation guide
How are you preparing for the Android golden nine silver ten interview? The latest Android Interview Questions Summary helps you prepare for the war
2、 Digital logic functional unit
中原证券靠谱吗?是否合法?开股票账户安全吗?
Use of pairwise
JS convert numbers to uppercase
[redis] redis installation and client redis cli use (batch operation)
Merge.Avhd into.Vhd manually in Hyper-V
[audio and video technology] video quality evaluation MSU vqmt & Netflix vmaf
正则表达式及绕过案例
系列文章|云原生时代下微服务架构进阶之路 - 微服务拆分的最佳实践
The basic syntax of go language (variables, constants, basic data types, for, switch, case, array, slice, make, new, map)
TAP 系列文章8 | TAP 学习中心——通过动手教程来学习
Flask框架中如何进行数据库的迁移