抽象仓库:合并两个/多个仓库 (OrderDocumentRepo)
发布: (2026年1月8日 GMT+8 11:15)
2 min read
原文: Dev.to
Source: Dev.to
在这种方法中,你创建一个 OrderDocumentRepo,将 OrderRepo 和 DocumentRepo 合并为一个抽象仓库,并在该仓库内部管理事务。
优点
- 单一职责 – 将与订单和文档相关的整个事务逻辑封装在一个仓库中,便于管理。
- 一致性 – 确保订单和文档操作在同一事务范围内紧密耦合,降低部分失败的风险。
缺点
- 复杂性 – 仓库处理多个实体,可能违反单一职责原则。
- 耦合紧密 – 将
OrderRepo与DocumentRepo绑定在一起,使得独立复用或测试更加困难。 - 可扩展性 – 若要向事务中添加其他仓库,需要修改
OrderDocumentRepo,降低了灵活性。
最佳实践
- 当订单和文档的操作始终绑定在一起、从不独立运行时,使用此模式。
- 当你需要保证两个密切相关的仓库之间的一致性,并且更改总是同步进行时,此模式非常有用。
参考
Abstract Repository Combining Two/Multiple Repositories (OrderDocumentRepo)