2011-02-01 25 views
0

MVCのデザインパターンは、主にWebベースのアプリケーションで一般的です。私は、デスクトップアプリケーション環境でMVCデザインパターンをどのように使用できるかを知りたいと思っています。非WebベースのアプリケーションでMVCを使用

具体的には、VLCメディアプレーヤーを考えてみましょう。 MVCパターンに合わせてVLCを書き込むことはできますか? M、V、Cは誰ですか?ディスパッチャーは誰ですか?

多分、VLCは完璧な例ではありませんが、私は普及しているアプリケーションだと思います。 VLCは、コーデックに内蔵されているビデオを再生するだけでなく、いくつかのビデオエフェクトの調整をサポートします。

+0

これは 'WinForms'ですか?ご意見は – IAbstract

答えて

0

以前はWeb以外のアプリケーションでMVCパターンを使用しました。実際には、1つのアプリケーションにさまざまなインターフェースを実装するための本当に良いアプローチです。私の経験では:

モデルはかなり明らかです。彼らは変わらない。 VLCの例では、入力ファイルのようなものになる可能性があります。

コントローラーは、実際には書き換えられていなくても、あまり変更する必要はありません。コントローラは、基本的にインタフェース型(web、cliなど)に無関係でなければなりません。与えられたコントローラーのアクションは、 "ここにはあなたが_ _のデータが入っています。

ビューは重要なリファクタリングが行われる場所です。メディアに適した入出力を持つビューを再作成するだけです(HTMLリソースではなくウィンドウ操作など)。

最後に、この場合の「ディスパッチング」は、メッセージを効果的に伝達するアプリケーション実行可能ファイルによって実行されます。ユーザー入力(およびその他の入力)を(Webアプリケーションの場合と同様に)コントローラへの呼び出しに変換します。

詳細はWikipedia's article on the MVC patternをご覧ください。

1

私は、デスクトップアプリケーションがすでにMVCのアプローチに従っているので、MVCはデスクトップアプリケーションではあまり言及されないと思います。イベント(コントローラを呼び出す)を引き起こす一連のインタラクティビティポイントを持つGUI(ビュー)があります。

よりシンプルなアプリケーションでつづる:winamp。

コントローラー-開始ポイント:

  • メニューオプション
  • ボタン

ビューポイント:

  • 合計GUI
  • トラック情報パネル(ETCアーティスト/トラック)
  • 視覚化パネル(グラフィックイコライザ)

あなたは確かにデスクトップアプリケーション用のMVCパターンを使用することができ、Webアプリケーションと同じ利点を実現します。

+0

ですが、私はオープンソースプロジェクトから学びたいと思います。プロジェクトがコンピュータビジョンまたはビデオ処理関連の場合はさらに良いです。とにかく私はwinampに精通していますので、あなたの答えは非常に歓迎され有用です。 – dole

関連する問題