2009-08-16 17 views

Respuesta

2

Una "clase de contexto de ejecución" es solo una clase de titular, creada por el nivel superior de su programa, que contiene todas las cosas (como el objeto Transacción en el ejemplo vinculado) del nivel superior que pueda ser necesario.

Es una forma empaquetada para evitar variables globales.

Algunas personas creen que incluso esto es algo skeezy, porque si top calls A que llama a B que llama a C que llama a D que necesita el nivel superior, debe pasar el contexto a A, B y C, que no lo necesita de otra manera

Y, por lo tanto, promueve la vinculación donde no sería necesario: A, B y C no son reutilizables en un programa que no utiliza este contexto. Pero es una alternativa perfectamente viable al estado global oculto, y a la proliferación interminable de singletons y otras cosas desordenadas.

Editar: este párrafo no es válido: Yo te recomiendo que utilice la clase ExecutionContext en javax.resource.spi.work ( http://www.j2ee.me/j2ee/1.4/docs/api/javax/resource/spi/work/ExecutionContext.html), porque al menos que restringe la unión de las clases intermedias a un estándar, en lugar de algo específico de la aplicación.

+0

algún ejemplo sobre cómo usar javax.resource.spi.work.ExecutionContext? – cometta

+0

Uhhh, estoy avergonzado aquí. Hice la recomendación apresuradamente, sobre la base de una lectura demasiado rápida de un javadoc. Es, err, no satisface tus necesidades. Voy a editar mi respuesta para reflejar esto. – CPerkins

Cuestiones relacionadas