私はこれについてしばらく考えていましたが、プレゼンテーション層の JSF プロジェクトで Bean/クラスを編成する方法のベスト プラクティスをまだ考え出していません。もちろん、そこには多くの要因がありますが、私は議論したいと思います。これが私の現在の考えです:
表示ページ (データの表示) と編集ページ (データの追加、更新、削除) を含む基本的な JSF (残念ながらここではまだ JSF 1.xx のままです) アプリケーションを考えてみましょう。プロジェクトを整理する方法は次のとおりです。
スコープ指定された BackingBean をリクエストします。
- 関連するものを表示します (保存ステータス、レンダリング ロジックなど)。1 回のリクエストでのみ必要なもの
- アクション、アクション リスナー、値変更リスナー。複数のビューに適用できる場合は、独自のファイルに分割できます。
セッション スコープの BackingBean:
- 1 つのリクエストよりも長く存在する必要があるもの。データベース データ、SelectItems など。
- この Bean はリクエスト Bean に注入され、任意のデータ オブジェクトのインスタンスを格納します。
データ オブジェクト:
- データ オブジェクトを Bean にするのは意味がないように思われるので、それらは別々に格納されます。これは、ユーザー、本、車など、ページに表示するオブジェクトです。オブジェクトには、getFormattedName() などのビュー ヘルパー メソッドを含めることができます。
ダオ:
- ビジネス ロジック層とのすべての対話を処理する非 Bean オブジェクト。データ Bean をロードし、サブミットなどを準備します。私は通常、これを public static メソッドのクラスにします。
コンバーター、バリデーター:
- 別ファイル
平均的な JSF アプリケーションで必要なのは、これだけのようです。私はこれを読みました: http://java.dzone.com/articles/making-distinctions-beforeと、ここでの返信: JSF バッキング Bean 構造 (ベスト プラクティス)ですが、全体像を把握できているとは感じませんでした。BalusC の回答は役に立ちましたが、アプリ全体をカバーしているようには見えませんでした。あなたの考えを聞かせてください!