哪种设计模式适合从多个来源获取相同类型的数据,将它们组合成一个单元并应用多个过滤器

Posted

技术标签:

【中文标题】哪种设计模式适合从多个来源获取相同类型的数据,将它们组合成一个单元并应用多个过滤器【英文标题】:Which design pattern suitable to fetch same type of data from multiple sources, club them into a single unit and applying multiple filters 【发布时间】:2021-11-06 16:26:03 【问题描述】:

我有两个产品,Product AProduct BProduct A 有一个使用 M 数据库调用创建的营销活动列表,Product B 也有一个由单独的N 数据库调用创建的营销活动列表。

需要注意的重要一点 - MN 之间的某些调用是常见的。

现在对于Product A,我们调用M 数据库调用列表并将它们组合成一个列表,对于Product B,反之亦然。

现在我们要在Product A 上应用X Filters 列表和在Product B 上应用Y Filters 列表,以便根据客户的要求获得Product A campaignsProduct B campaigns 的过滤列表特定产品。

您有什么建议,我们应该如何设计系统?任何可以指导我正确方向的建议或链接或参考将不胜感激。

【问题讨论】:

您要合并两个产品中的广告系列列表,然后根据每个产品与哪个产品相关,将过滤器应用于该单个列表吗?是这样吗? 对描述进行了更改,我只想将过滤器应用于产品 A 广告系列,并将最终结果作为产品 A 广告系列列表返回。 【参考方案1】:

我们可以在这里使用工厂方法吗? 我们可以决定我们想要在运行时创建的产品以及我们想要在运行时应用到产品的过滤器。 这样,如果我们想添加新产品或新过滤器,我们可以轻松添加它们而无需更改现有产品或过滤器

https://refactoring.guru/design-patterns/factory-method

【讨论】:

当您拥有多个同系列产品时,工厂肯定会出现,如果您看到有一个过滤器工厂,则可以通过责任链原则管理这些过滤器列表。从不同来源收集产品列表也属于模板设计模式类别。

以上是关于哪种设计模式适合从多个来源获取相同类型的数据,将它们组合成一个单元并应用多个过滤器的主要内容,如果未能解决你的问题,请参考以下文章

哪种数据库类型适合我的应用程序? [关闭]

哪种数据类型最适合 c++ 中节俭通信中的日期时间?

哪种设计模式更适合保存/删除数据,为啥?

哪种列表/集合类型最适合在 WCF 数据协定中使用?

数据仓库数据集市数据湖,你的企业更适合哪种数据管理架构?

哪种 .NET 数据类型最适合在 NHibernate 中映射 NUMBER Oracle 数据类型?