私はJavaでシミュレーションを構築しています。そこで、シミュレーションを2つの部分に分けます。
1)シミュレーションエンジン
2)シミュレーションモデル
基本的に、私はそれを分割する方法、つまり何がどこに行くのかについて少し助け(ヒント/アドバイス)が欲しいです。
だから私はエンジンが時間を追跡するだろうと思っています。イベントをリッスンし、イベントが到着すると、シミュレーションの状態を更新します(離散イベントシミュレーションを構築しています)。シミュレーションモデルにはGUIがあり、実際のエンジンからロジックとデータを取得します。モデルはエンジンへの入力として実際のイベントを提供すると思います。私は、エンジンが車のボディであり、モデルがドライバーであるという車の例えについて考えてきました。ですから、ドライバー(モデル)が車(エンジン)に何をすべきか、つまりいつブレークするか、どの速度で進むかなどを指示するように動作させたいのです。
私はこれに正しい方法で取り組んでいると思いますか?少し紛らわしく、はっきりしないように聞こえます。ですから、私が探しているのは、これをどのように分割すべきか、そしてエンジンとモデルの責任が実際にどうあるべきかについての単なるインプットであることを明確にします。
また、MVCデザインパターンを実装する場合、それを分割しようとしている方法にどのように適合するのでしょうか。
編集:
モデルとは、シミュレーションに、エンジンが従う特定のルールのセットを持たせたいという意味です。私が道路交通シミュレーターを構築しているとき、ルールは、車の分布、ドライバーのプロファイル、車が実行できることと実行できないこと(たとえば、赤信号のために停止する)などのようになります。したがって、モデルはの「頭脳」のようなものです。私が言っていることを理解できればシミュレーション、そしてエンジンはモデルによって指定された一連の「ルール」の実際のシミュレーションです。これがもっと理にかなっていることを願っています。