2011-07-11 6 views
0

マルチメディアプレーヤーのデザインパターンはありますか?私はインターネットで検索してきましたが、選手の建築に関連するパターンは見つけられませんでした。私はいくつかのプレイヤー(MPlayer VLC)のソースを見ましたが、プレイヤーが使用しているパターンは認識できませんでした。サポートされているさまざまなメディアが異なるモジュールで実装されているプレイヤーを作りたいと思います。プレーヤーは他の多くのクライアントプロセスで使用されるべきユニークなプロセス(サーバー)であり、クライアントはメディアを再生するようプレーヤーに要求し、要求はプレーヤーによって処理されます。以下のために合うことができるどのようなデザインパターンあなたは」自分自身に尋ねるべきではありませんプレーヤーのデザインパターン

:私は絶対ナンセンス行動(個人的な意見洞察)につながること、デザインパターンmegahypeについてそのちょうど私の否定的な思考場合は知らないが、

答えて

5

そのXYZタイプのアプリケーションをコード化したい "と言います。

これは絶対に間違ったやり方です。デザインパターンは、あなたがコードするプログラムに割り当てるレゴブロックではありません。パターンは、特定の領域で自然に進化します。

パターンがわかっている場合は、何が良い解決策であるかを知るのに役立ちます。しかし、決してあなたのためにいくつかの模様をまとめることは決してありません。

mmplayerのパターンは本当に悪い質問です。その特定のドメインのFactoryパターンで進化するかもしれない同じタスクに、異なるコーデックが必要だと言うかもしれません。リークバケットカウンタで進化するかもしれないフォールトトレランス機能を備えたストリーミング機能が必要な場合があります。

あなたの質問を考え直す可能性があります。私はそれが尋ねるのは全く意味がないと思う。

本当に、違反はありません!しかし、私はあなたがデザイン意思決定の意味で間違った方向に進んでいると思います。別の方法でアプローチするのがベストかもしれません。

1

メディアプレーヤーはアプリケーション全体です。アプリケーション全体の "デザインパターン"というものはありません。

しかし、ソフトウェアのいくつかのファミリ(たとえば、ビデオゲーム)は、ほとんど常に共通のアーキテクチャプロパティを共有しています。しかし、ここではアプリケーション・アーキテクチャー・レベルにあります。設計パターン1ではなく、一般にコード・レベルのコンセプトと見なされます。

メディアプレーヤーの種類のアプリケーションには参照アーキテクチャはありませんが、多くの異なるアーキテクチャの原則に頼ることができます。たとえば、複合アプリケーションを設計することは非常に一般的な方法です。モジュールやコーデックなどをロードできるプラグインシステムを作成する方法に関する専用の文献がたくさんあります。

0

Audacityアーキテクチャを見て、同じドメインで優れたSW設計を見てください。 http://www.aosabook.org/en/audacity.html

Audacityはよく使われるサウンドレコーダーとオーディオエディターです。これはまだ使用しやすいながらも可能な プログラムです。大部分のユーザーは Windowsにありますが、同じAudacityソースコードがLinuxで実行するようにコンパイルされ、 Macでも実行されます。

関連する問題