-3

ユーザー入力がほとんどない自動化された迷路ソルバーを表示するためのシミュレーションを作成しています。

MVC アーキテクチャが使用され、Java で実装されます。ビューは、コントローラーを介してモデルからデータを受け取り、描画します。

現状では、モデル ロジックを更新し、次にビューを更新するために使用できる 2 つのオプションがあります。

  • コントローラーは Runnable を実装します
  • コントローラーはスレッドを作成します。

    Thread runControl = new Thread(this);
    runControl.start();
    
  • その後、スレッドはコントローラーで run() を実行できます。これにより、モデル ロジックが更新され、新しいデータがビューに渡されます。

ただし、モデルで独自のロジックを実行する方が早いため、これは私の好みの方法ではありません。を好む:

  • モデルは Runnable を実装します
  • モデルには run() のすべてのロジックが含まれます
  • コントローラーはモデルのスレッドを作成し、モデルを実行します

私はこの時点で迷っています。その後、モデルはそれに応じて独自のロジックを更新できますが、モデル スレッドの実行中に、モデル データの変更をコントローラーに通知し、そのデータ (まだ操作/更新中) を取得して、コントローラーに通知するにはどうすればよいでしょうか。意見?

4

1 に答える 1

1

ControllerとViewは緊密に連携しています。前者はサーバー側、後者はクライアント側です。

MVCには次のような更新が必要だと思います。

View->Controller->Service->Persistence

これらはレイヤーです。モデルはレイヤー間で実行されます。

サービスはユースケースを満たします。これらは、ビジネスロジックを配置するための適切な場所です。確かに、モデルオブジェクトは自身の状態を管理する方法を知っている必要がありますが、ユースケースを満たすためにモデルオブジェクトと永続性オブジェクトをマーシャリングすることはサービスに属します。モデルは、使用されるすべてのコンテキストを認識していない可能性があるため、モデル以外のものが必要です。

コントローラはリクエストを受け入れ、検証し、バインドします。要求を満たすために必要なサービスを決定します。応答をシリアル化し、次のビューを決定します。

サービスは、ユースケースと作業単位を認識しています。

于 2012-10-19T11:48:08.877 に答える