首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当同一类型的数据有多个源时,如何设计我的存储库?

当同一类型的数据有多个源时,如何设计我的存储库?
EN

Software Engineering用户
提问于 2017-07-18 04:21:25
回答 1查看 1.3K关注 0票数 3

在我的应用程序中,我必须从ERP中获取数据。对于这个例子,让我们假设产品数据。

一些数据将来自我们的ERP提供的API,而有些数据将来自直接DB调用,因为API没有给我们提供所有所需的详细信息。

对于这种情况,我是否只需要使用单个存储库,并在存储库方法中从所需的位置获取数据?

如果我这样做,我担心的是,我将注入构造函数IApiService和数据库连接字符串,这取决于我要检索的数据,这可能是不必要的。

我是否创建了两个单独的存储库,比如ApiProductRepository和DatabaseProductRepository?

这里最好的方法的一些指导将是很棒的!

EN

回答 1

Software Engineering用户

发布于 2017-07-18 04:54:29

我将创建存储库接口的两个独立实现,如ApiProductRepositoryDatabaseProductRepository。每个实现都会为它不支持的方法抛出一个NotSupportedException。最后,创建一个ErpRepository,它接受ApiProductRepositoryDatabaseProductRepository,并根据该方法调用适当的实现。

下面是描述我将如何设计解决方案的类图

编辑:我的回答是假设一些方法将由DB提供,另一些则由API提供。在OP澄清了模型的一些属性将从API中填充,而有些属性将由DB填充后,上面的设计没有很好地涵盖这种情况,我将使用更简单的设计:

票数 3
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/352987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档