2016-04-15 5 views
0

MVCパターンの背後にある点は何ですか?アプリケーションの設計時にMVCデザインパターンを使用することをお勧めする場合、どのようなタイプのアプリケーションですか?私はQtを半年間使用していますが、MVCを使用する必要はありませんか?アプリケーションの設計と開発には他にどのような設計パターンがありますか?Qtアプリケーション開発のモデルビューコントローラ

+0

Qtのようにモデルビューアーキテクチャを使用してQtを使用することはほとんど不可能です。 –

+0

MVCで書籍や記事を読んだことがあり、その中の特定の点を理解していない、またはその点を捨てている場合は、その特定の点を引用してください。さもなければ質問は十分に具体的ではない。 –

答えて

2

MVCは、GUIアプリケーションのコアのより一般的なデザインパターンです。 多くのアーキテクチャのように、主な目的は、読みやすく、保守しやすいため、ロジックとデータをコードに分割することです(多くの利点があります)。

もう少し具体的にMVC標準では、Observer/Observableパターンを使用して、データが更新されたときにのみビューを更新します。ゲームのループのようではありません。

Qt(> = 4.0)については、hereというMVCはフレームワークアーキテクチャの一部です。既に使用しています:再実装しようとしないで、デザインのようなQtクラスを使用してください(上記のリンクを参照)。

あなたはまたMVVMPureMVCのようないくつかのMVCの変種とアーキテクチャを拡張することができます....

他のアーキテクチャについては、私はEntity Component Systemを愛するが、それは小さなアプリケーションのために少し多すぎるのです。デザインパターンについて一般的にもっと知りたい場合は、siteが良いかもしれません(少し古いかもしれません)。

+0

信号とスロットはMVCの一部ですか? –

+1

@Lazar信号とスロットは、MVCのインプリメントを助けるために使用できますが、それらは単独で動作します。 Qtを使ってMVCの特定の実装を考えている限り、それらはMVCの「一部」です。 –

+0

私の答え(Qt MVCについて)、およびシグナルとスロットのキーワードを検索してください。あなたは必要なものすべてを知っているでしょう。しかし、はいQt MVCはシグナルとスロットをデザインに統合しています(自分のMVCを設計するためにシグナルとスロットが必要というわけではありません)。 –

0

MVCは、GUIアプリケーションで使用されるパターンです。[V] iews内の[M] odel内のビジネスロジックがGUIから分離されていることを保証します。 [C]コントローラは、これらの2つが互いに通信できることを確認します。

このデカップリングの最大の利点の1つは、アプリケーションがメンテナンス可能なままであることです。私は個人的な経験から、ほぼすべて(dbアクセス、ユーザー入力の確認など)を処理する1つのメインダイアログを持つアプリケーションは、維持することが非常に難しいことを伝えることができます。ライフサイクルの後半になると、アプリケーション内のクリーンなアーキテクチャーに魅力を感じてください。

もう1つのGUIアプリケーションパターンはMVVMで、アプリケーションパターンのトピックの詳細については、Martin Fowlerの「パターンエンタープライズアプリケーションアーキテクチャ」をお勧めします。

0

Qtでは、QtGUIコンポーネント全体で独自のモデル/ビューパターンを幅広く使用しています。これはMVCパターンの解釈です。

は、詳細についてはこちらをご覧ください:

http://doc.qt.io/qt-4.8/modelview.html

あなたがそれを使用すべきですか?可能であれば、特に大量のデータを表現する必要のある複雑なGUIコンポーネントを扱う場合は、理想的です。 QTableViewは、私が最も頻繁に使用するQTableViewです。

主な利点は、ビューとデータを疎結合することで簡単にできます。変更を加えると、他のビューに与える影響は最小限に抑えられます。これにより、将来的にコードをより保守しやすくなります。