finclip-app-manager/infrastructure/infrastructure.go

24 lines
1.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package infrastructure
/**
* DDD: infrastructure 基础实施层是最底层(但与所有层进行交互)。
* 向其他层提供通用的技术能力(比如工具类,第三方库类支持,常用基本配置,数据访问底层实现)
* 基础实施层主要包含以下的内容:
* 为应用层传递消息(比如通知)
* 为领域层提供持久化机制(最底层的实现)
* 为用户界面层提供组件配置
* 基础设施层还能够通过架构框架来支持四个层次间的交互模式。
**/
/**
* 1、站在领域层更过关心领域逻辑的层面仓储作为领域层和基础结构层的连接组件
* 使得领域层不必过多的关注存储细节。在设计时,将仓储接口放在领域层,
* 而将仓储的具体实现放在基础结构层,领域层通过接口访问数据存储,
* 而不必过多的关注仓储存储数据的细节也就是说领域层不必关心你用mongo还是pg来存储数据
* 这样使得领域层将更多的关注点放在领域逻辑上面。
* 2、仓储解耦了领域层和ORM之间的联系这一点也就是很多人设计仓储模式的原因
* 比如我们要更换存储框架,我们只需要改变仓储的实现即可(例如mongo改成pg)
* 对于领域层和仓储的接口基本不需要做任何改变。
**/