加载中...

仓储模式(Repository Pattern)在领域层与数据映射层之间引入一个类似内存集合的抽象:领域代码通过 add、remove、findById 等集合语义的方法存取领域对象,而不直接书写 SQL 或 ORM 调用。该模式收录于 Martin Fowler《企业应用架构模式》,并在领域驱动设计中作为聚合的持久化门面。
仓储接口定义在领域层,具体实现(基于 JPA、MyBatis、MongoDB 等)放在基础设施层,通过依赖注入组装;查询条件可用规约(Specification)对象表达。
Spring Data 的 Repository 接口、.NET 的 EF Core 配合自定义仓储都是常见实践;DDD 中通常一个聚合根对应一个仓储。
优点是领域与持久化解耦、便于用内存实现做单元测试;缺点是对简单 CRUD 是多余抽象,通用仓储接口容易泄漏查询细节。

登录 后参与讨论
暂无讨论,来发表第一条评论吧