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