我必须设计一个使用asp .net核心的软件,它从各种数据源收集数据(见下图)。例如,DataSource1和DataSource2都包含类似属性的产品数据。DataSource 3包括这些产品的资产。我想,首先,我将从每个数据源收集数据,并使用下面定义的实体将它们保存在自己的数据源中。后来,我在翻译或转换数据以使用一个抽象实体方面具有优势。
我的问题是,哪种模式应该适合这个系统?储存库,管道,?你能给我看一些伪码吗?
如果我使用接口,但应该增加数据源的实例,那么DI怎么办?

发布于 2021-02-09 17:41:38
一个模式(或一组模式)应该应用来解决特定的问题/复杂性。
我认为您需要的模式是门面。
它将解决的问题是,它将隐藏客户端的“三个数据源”的复杂性。
在Facade中,您将将数据合并到一个合理的实体中。
此外,您还可以使用代理模式,它可以为“合并”实体提供“缓存”功能,这可以解决您描述的第二个复杂性。
我不确定我是否理解将这些项保存到第四个数据存储中的想法,这可能是过度的--但无论如何,这也可以通过代理类来实现--只是如果您的域“允许”,缓存就会更持久。
至于存储库(模式)--好吧,--我相信,您应用的任何合理的解决方案,如果能隐藏数据访问的细节,最终都会成为存储库的一个实现。
对于命名模式和坚持在书籍或文章中使用示例代码,我不会太严格。模式是可以根据需要调整的高级指南。
https://stackoverflow.com/questions/66120507
复制相似问题