7

現在、Qt4/QtCreator に基づくプロジェクトに取り組んでいます。申請書の整理方法についてアドバイスをお願いします。

  • 3 つの個別のツールがあり、それぞれに独自のビューがあります。すべてのビューは、閉じられないタブとしてメイン ウィンドウに統合されています。Tool1View、Tool2View、Tool3View の 3 つのビューを用意しました。

  • 各ツールは、ユーザーのアクションによってトリガーされるいくつかのタスクを実行すると想定されています。しかし、これらはデータベース関連の操作 (リスト/追加/変更...) ではありません。少なくとも、ユーザーは GUI 要素でレコードを追加/変更/リストするつもりはありません。

各ツールを 2 つのクラスに実装することを考えています。

  • ウィジェットと GUI の変更に関連するすべてのタスクを実装する最初のクラスの ToolXView。

  • アプリケーション ロジックを実装する 2 番目のクラスの ToolX。このクラスのメンバー関数は、View クラスによってトリガーされます。このクラスが GUI 要素を更新する必要がある場合は常に、View クラスの特殊な関数を呼び出します。したがって、ここからウィジェットへの直接呼び出しは行われません。

ビュー クラスとロジック クラスが相互にリンクされ、双方向の通信が可能になります。

今、この方法でいいのか悩んでいます。あなたの経験に基づいて私にアドバイスしてください。

  1. ロジック クラスへのポインタをビュー クラスのプロパティとして、ビュー クラスへのポインタをロジック クラスのプロパティとしてカプセル化する予定です。このようにして、それらを統合する予定です。

  2. シグナル/スロットを使用して通信を提供するか、メンバー関数を呼び出すだけですか?

  3. QtSql データベースにいくつかのデータを保存する必要があります。データベース アクセス用に別のクラスを提供する必要がありますか。または、ロジッククラス内に別のメンバー関数を実装するだけですか?

  4. クラスに名前を付ける方法。このスキームは良いですか、それとも変更する必要がありますか?

手伝ってくれてありがとう。コメントありがとうございます。

4

1 に答える 1

5

mvc アーキテクチャを使用することは素晴らしいことです。

1 & 2 -上記のリンクには、mvc アーキテクチャの UML ダイアグラムが表示されます。それに関しては、ビュー シグナルをコントローラー メソッドに接続し、コントローラーからビュー メソッドを呼び出します。

3 -データベース アクセスに関しては、データ アクセスに特化したアーキテクチャにデータ アクセス部分を追加します。データ アクセス オブジェクトのシグネチャを定義し、それをデータベース専用のクラスに実装するためのインターフェイスを用意できます (したがって、アプリケーション全体を変更せずにデータの場所を変更できます)。

4 -あなたのクラスの命名は良さそうです。しかし、さらに進んでクラスを呼び出します。

  • ビューの場合: ClassNameView
  • コントローラーの場合: ClassNameController
  • DataAccessObject の場合: ClassNameDAO
  • Model : ClassName (およびインターフェイスの IClassName)

それが役立つことを願っています

于 2011-03-29T12:04:07.520 に答える