2013-06-23 55 views
1

當您將來自不同來源的信息收集到自己的一般模型中時,應使用哪種設計模式?來自不同來源的聚合/收集的設計模式

一個示例可能是將來自不同視頻流服務的視頻輪詢爲一個通用模型。換句話說,每個視頻流服務都將擁有自己的視頻對象表示,並擁有一組不同的屬性。所以你想收集這些不同的結構並將它們聚合成一個通用的Video對象。

是否有一些衆所周知的設計模式使我們?我所做的是爲每個有責任從api模型創建通用模型的API創建一個工廠。這是一個好方法嗎?

回答

3

您的問題陳述似乎不適合單一設計模式的範圍。正如你所提到的,你從不同的來源獲取數據,並且希望將它們分組,在這種情況下,複合模式可能是一個不錯的選擇。

當你需要傳達給輸入不同的來源,這將是件好事,這部分完全異步的,這樣你就不會阻止你該主程序。

您可能還需要你似乎必須使用一個抽象的因素需要初始化不同的源系統交互API的多個實例。

爲了保持您的其他系統/服務彼此獨立,依賴注入將是很好的選擇。

希望這會有所幫助。

+0

感謝您向我介紹Composite模式。幾乎我正在尋找的東西。我想我會和一些工廠模式一起使用它。是的,我已經在使用異步請求。 –

+0

很高興知道我能幫上忙,這就是你要找的。 – JustCode

1

如果你的一般模式,將進一步在應用程序中使用,並且不關心那裏的信息是從那麼抽象工廠模式來與可能是一個通用接口。如果您的應用程序需要知道數據來自何處,或者您的API具有一些常用功能以及它們自己的某些特定功能,那麼將工廠和存儲庫模式結合起來。