这个“问题”的常用方法(或设计模式)是什么:
- 我在 Web 应用程序中有很多控制器(准确地说是 JAVA 中的 struts 操作)。
- 一些控制器在用户会话中设置变量。
- 一些控制器使用这些变量,删除它们,修改它们等等......
这很混乱,因为很难知道谁设置了什么,在什么条件下,在哪里改变......
我应该使用调解员模式: http ://en.wikipedia.org/wiki/Mediator_pattern
或者像这样的外观模式(c# 中的示例): http: //foxsys.blogspot.ca/2007/01/session-facade-aspnet-c.html
或者是其他东西?
变量的工作流程示例及其混乱程度:
用户选择了喜欢的产品。ChooseProductController 设置会话中首选产品的 id
用户创建一个帐户: CreateAccountController 检查首选产品是否在会话中。如果是这种情况,它会在 DB 中创建具有此 ID 的帐户
用户已登录。 LoginController 检查首选产品是否在会话中。如果它与创建帐户时数据库中的不同,则视图需要显示一条消息,要求用户选择首选产品。