2011-07-11 98 views
0

多媒體播放器是否有設計模式?我一直在互聯網上搜索,但我沒有發現與玩家的體系結構有關的模式。我查看了一些玩家(MPlayer VLC)的來源,但我無法識別玩家使用的任何模式。我想建立一個播放器,支持不同的媒體在不同的模塊中實現。玩家將是一個獨特的進程(服務器),應該被其他客戶端進程使用,客戶端會請求玩家播放媒體,然後請求會被玩家處理。玩家設計模式

回答

5

我不知道,如果它只是我的關於設計模式megahype導致絕對荒謬的行爲(個人觀點見解),但消極的想法:

你不應該問自己「能適應什麼設計模式爲我想編碼的XYZ類型的應用程序「。

這是做事絕對錯誤的方式。設計模式不是您分配給您編碼的程序的樂高塊。模式自然會在特定的領域發展。

如果您瞭解模式,它可能會幫助您查看可能是一個好的解決方案。但絕不僅僅是爲了它而將一些模式包裝在一起。

mmplayer的模式真的是一個糟糕的問題。你可能會說你需要不同的編解碼器來完成相同的任務,這可能會在工廠模式下在特定領域發展。您可能需要一些具有容錯功能的流式傳輸功能,這些功能可能會在漏斗式計數器中演變。

您可能會重新考慮您的問題。我認爲完全沒有意義。

真的,沒有冒犯!但是我認爲你在設計決策的意義上會走向錯誤的方向。以不同的方式來處理它可能是最好的。

1

媒體播放器是一個完整的應用程序。對於整個應用程序來說,沒有這種「設計模式」。

然而,一些軟件家族(比如電子遊戲)幾乎總是有一些共同的建築特性。但是我們處於應用程序架構層面,而不是設計模式層面,這通常被認爲是代碼層面的概念。

恐怕沒有媒體播放器類應用程序的參考體系結構,但是,您可以依賴許多不同的,不太具體的體系結構原則。例如,設計複合應用程序是相當普遍的做法。你會發現很多關於如何創建一個可以加載模塊或編解碼器的插件系統的專門文獻。

0

你可以看看Audacity架構,並在同一個域看到一個好的SW設計: http://www.aosabook.org/en/audacity.html

Audacity是一款流行的錄音機和音頻編輯器。這是一個有能力的 程序,同時仍然易於使用。大多數用戶使用的是Windows的 ,但同樣的Audacity源代碼編譯也可以在Linux和Mac上運行 Mac。