¿Patrón de diseño para gestionar información que se establece / modifica / utiliza en sesiones http por diferentes controladores?

¿Cuál es el enfoque común (o patrón de diseño) para este "problema":

  1. Tengo muchos controladores en una aplicación web (las acciones de struts en JAVA para ser precisos).
  2. Algunos controladores establecen variables en la sesión del usuario.
  3. Algunos controladores usan esas variables, las eliminan, las modifican, etc.

Es complicado porque es difícil saber quién establece qué, en qué condición, dónde cambia ...

¿Debo usar el patrón de mediador: http://en.wikipedia.org/wiki/Mediator_pattern

O el patrón Facade como este (ejemplo en c #): http://foxsys.blogspot.ca/2007/01/session-facade-aspnet-c.html

¿O algo mas?


Ejemplo del flujo de trabajo de una variable y cómo puede ser desordenado:

  1. El usuario elige un producto preferido. ChooseProductController establece la identificación del producto preferido en la sesión

  2. El usuario crea una cuenta: CreateAccountController comprueba si un producto preferido está en sesión. Si es el caso, crea la cuenta en DB con esta identificación

  3. El usuario ha iniciado sesión. El LoginController comprueba si un producto preferido está en sesión. Si es diferente de la de DB cuando se creó la cuenta, la vista debe mostrar un mensaje para pedirle al usuario que elija el producto preferido.

Respuesta 1

Estoy tratando de escribir un programa que maneje el almacenamiento de estudiantes y asignaturas correspondientes, pero soy relativamente nuevo en las Listas de Java y tengo problemas para que la clase almacene y emita el ...

¿Hay una manera fácil de verificar si dos clases implementan una interfaz común? Estoy usando IntelliJ y llamo a una biblioteca de Java (cliente REST de alto nivel de Elastic Java) desde algún código de Kotlin. SearchHit y ...

Recientemente actualicé netbeans de 7.1.2 a 7.2. Desafortunadamente, no puedo encontrar la manera de activar las vistas de depuración, como la lista de puntos de interrupción, la pila de llamadas y la lista de hilos. En netbeans 7 ...

¿Cuáles son los URI disponibles que podrían especificarse para los atributos adicionales de hiedra? Las páginas del manual de Ivy nos permiten usar los xmlns de URI: e = "http://ant.apache.org/ivy/extra" que nos permitiría ...