从不同来源聚合/收集的设计模式

时间:2013-06-23 17:05:15

标签: c# oop design-patterns

当您将来自不同来源的信息收集到您自己的一般模型中时,您应该使用哪种设计模式?

一个例子可能是将来自不同视频流服务的视频轮询到通用模型中。换句话说,每个视频流服务将具有它们自己的具有不同属性集的视频对象的表示。所以你想收集这些不同的结构并将它们聚合成一个通用的Video对象。

是否有一些众所周知的设计模式可供我们使用?我所做的是为每个API建立一个工厂,负责从api模型中创建通用模型。这是一个好方法吗?

2 个答案:

答案 0 :(得分:3)

您的问题陈述似乎不适合单一设计模式的范围。正如您所提到的,您正在从不同来源获取数据,并希望在这种情况下对它们进行分组,复合模式可能是一个不错的选择。

由于您需要与不同的来源进行通信以进行输入,因此最好让该部分完全异步,这样您就不会阻止主程序。

您可能还想使用抽象因子,因为您似乎需要初始化不同源系统交互API的多个实例。

为了让你的其他系统/服务彼此独立,依赖注入会很好。

希望这会有所帮助。

答案 1 :(得分:1)

如果您的通用模型将在您的应用程序中进一步使用,而不关心信息来自何处,则抽象工厂模式可能是一个通用接口。如果您的应用程序需要知道数据的来源,或者您的API具有一些共同的功能和它们自己的一些细节,那么将工厂和存储库模式结合起来。