この「問題」の一般的なアプローチ(またはデザインパターン)は何ですか?
- 私はWebアプリケーションにたくさんのコントローラーを持っています(正確にはJAVAでのストラットアクション)。
- 一部のコントローラーは、ユーザーのセッションで変数を設定します。
- 一部のコントローラーは、これらの変数を使用したり、削除したり、変更したりします。
誰が何を、どのような状態で、どこで変更するのかを知るのは難しいので、面倒です...
Mediatorパターンを使用する必要があります:http: //en.wikipedia.org/wiki/Mediator_pattern
または、次のようなファサードパターン(c#の例): http: //foxsys.blogspot.ca/2007/01/session-facade-aspnet-c.html
または、他の何か?
変数のワークフローの例と、それがどのように乱雑になる可能性があるか:
ユーザーは好みの製品を選択します。ChooseProductControllerは、セッション中の優先製品のIDを設定します
ユーザーがアカウントを作成します。CreateAccountControllerは、優先製品がセッション中であるかどうかを確認します。その場合は、このIDでDBにアカウントを作成します
ユーザーはログインしています。LoginControllerは、優先製品がセッション中であるかどうかを確認します。アカウントが作成されたときのDBのものと異なる場合、ビューは、使用者に優先製品を選択するように求めるメッセージを表示する必要があります。