2012-01-08 2 views
15

プロジェクトでは、JavaFX 2.0デスクトップアプリケーション(キーツールUI)で作業していました。 JavaFx2.0の仕組み(私のプロジェクトでは、とにかく)、UIイベントの処理は、JavaFX 2.0のUIクラス(onclicked()イベントやプロパティー変更リスナーなど)で行われます。大規模なJavaFx 2.0アプリケーションでコントローラ/プレゼンターを編成する方法は?

ここでは、すべてのUIクラスがアプリケーションの1つのコントローラにアクセスするために使用するgetController()メソッドを使用して静的クラスを使用しています(コントローラを50以上のUIクラスすべてに渡すのは面倒です)。

しかし、問題は1つのコントローラが非常に大きくなっていることです。あまりにも多くのメソッド(私のUIクラスでアクセスする必要があるすべてのビジネスロジックメソッド)があります。私のモデル/サービスにメソッド呼び出しを渡しても、UIでそれらを処理するためにコントローラレベルで捕らえられる必要がある例外はたくさんあります(エラーメッセージの表示など)。

このMVC/MVPパターン全体を、UI /コントローラ/モデルクラスが直接に依存することなく、私のアプリケーションでうまく動作させるためのきれいな方法を知っている人は誰ですか?たぶん、各ユースケースごとに異なるコントローラですか?しかし、正しいUIクラスがそれを直接知ることなく適切なコントローラを取得できるように、どうすればよいでしょうか?多分インターフェイスを使用していますか?

+0

ポータルやGoogleマップビューアなどの管理者である可能性があります。 – toto2

+0

あなたのUIを独自のコントローラを持つ部品に分割することはありますか? – Tower

答えて

3

私はJava FXを本当に知らないので、私は塩の穀粒で私の答えを取るべきです。私はJava FXのチュートリアルを少し見ましたが、それらはすべて、どのような種類のアーキテクチャも持たない小さな例であるようです... MVCなど。

多分、きれいなMVCパターンを作成するのは難しいことです。各UI要素はそれ自体MVCユニットです。ラベルにはテキスト(モデル)、グラフィック表現(ビュー)、イベント(コントローラ)が含まれます。

別個のグローバルコントローラを使用することで、あなたの人生を苦痛にさせているかもしれません。

ただし、データベース(モデル)のコンテンツを表示する場合など、別のモデルを使用することができます。しかし、あなたが非常に単純なことをやっているのであれば、あなたのモデルとしてUIの状態を使うだけで十分でしょう。データ(モデル)をプログラム内に別々に保持すると、UIのデータと別のモデルのデータを同期させる時間が無駄になります。データの複製は悪いので、できるだけ避けるべきです。

1

ここにはBuilding JEE applications in JavaFX 2.0という一連のブログがあります。 JavaFx2アプリケーションでさまざまなコンポーネント(MVP)をデカップリングする方法の例をいくつか示します。

2

私はそれはあなたのアプリケーションを構築するのに役立ちますシンプルだが強力なパターンを提供し、あなたがJRebirthフレームワーク

をテストすることを提案します。

このフレームワークは若く、受け取ったフィードバックに従って改善される予定です。何かを送ることを躊躇しないでください。

http://www.jrebirth.org/doc/Overview.html

より多くを学ぶために提供概要ページとソースコードをチェックしてください。

ライブデモもご用意しており、私はモデルクラスは常に切り離され、何も知らないはずのJavaおよびJavaFXの2を使用して実装することができますどのようにMVCパターンにしばらく前からmy website上での基本的なチュートリアルを入れている

+0

このリンクは壊れています – James

+0

リンクが復元されました(一時的にダウンしました) –

+0

リンクが再び壊れました。 – Derek

0

コントローラとビューアについてこれが大きなプロジェクトの場合は、モデル、ビューア、コントローラがある場所でモジュールを使用することをお勧めします。モジュールは、それはあなたのコントローラが何をするかは明らかではありません

http://www.pergande.net/blog/article/post/Javafx+2.0+MVC/id/1

+2

リンクが今すぐ破損しています – Andrew

関連する問題