领域驱动设计DDD之Repository 电脑版发表于:2022/5/19 10:51 #### DDD中的Repository模式 Repository模式也称存储库模式或仓储模式,根据Eric Evans的《领域驱动设计》一书,“存储库是一种封装存储,检索和搜索行为的机制,它模仿对象的集合。” 同样,根据企业应用程序体系结构的模式,它“使用类似集合的接口访问域对象,在域和数据映射层之间进行中介”。 换句话说,存储库还处理数据并隐藏类似于DAO的查询。但是,它处于更高的层次,更接近应用程序的业务逻辑。 Repository模式又称为仓储模式或存储库模式,替代以前的DAO模式,存储库模式限制我们在应用程序直接使用数据库的数据。 ##### Repository设计原则 - 出参入参不应该使用底层数据格式: 需要记得的是 Repository 操作的是 Entity 对象(实际上应该是Aggregate Root),而不应该直接操作底层的 DO 。更近一步,Repository 接口实际上应该存在于Domain层,根本看不到 DO 的实现。这个也是为了避免底层实现逻辑渗透到业务代码中的强保障。 - 不要在仓储内控制事务: 你的仓储用于管理的是单个聚合,事务的控制应该取决于业务逻辑的完成情况,而不是数据存储与更新情况。