GUI インターフェイス、クライアント、サーバー、およびデータベースで構成されるアプリケーションを作成しています。
しかし、数え切れないほどの時間をかけた後でも、すべてを整理する方法がわかりません。
GUI はいくつかのかなり異なる Swing コンポーネントによって構築されているため、それぞれに個別のモデルを用意することを考えました。
現在、情報の流れは次のようになっています。
- ユーザーが GUI に情報を挿入します。
- GUI は、コントローラーにイベントを与えることによって、何かが起こったことをコントローラーに伝えます。
- コントローラはイベントをサーバーに送信します
- サーバーはイベントを評価し、適切なクエリを DB に送信します。
- その後、DB からの結果がイベントに添付され、クライアントに送り返されます。
- コントローラーはイベントを取得し、適切なモデルを新しい情報で更新します
- 次に、モデルは対応するビューを更新します。
ユーザーが GUI を介してエントリを検索し、結果が返されるというシナリオが考えられます。
このアーキテクチャは正気ですか?
すべての異なるビューに独自のモデルが必要ですか? はいの場合、独自のコントローラーも必要ですか? いいえの場合は、何ですか?
モデル全体をサーバーに送信し、サーバーでモデル内の情報を操作してから、クライアントに送信することを考えました。クライアントがそれを受け取ると、コントローラーは新しいモデル情報がビューに添付されていることを確認します。このソリューションにより、個別のイベント クラスが不要になりますが、これを行うのは適切ではないようです。
私が求めているのは、MVCパターンに従ってサーバー/クライアント/データベースアプリケーションを編成する最良の方法は何ですか?