Duda sobre modelo estático
"voqpasa2001" <[email protected]>
| Newsgroups | gmane.comp.java.javaspain |
|---|---|
| Message-ID | <[email protected]> |
Buenos días a todos, quería haceros una pregunta sobre clases estáticas a ver si alguien me lo puede aclarar, a ver si me explico correctamente: Estoy utilizando DAO´s, de tal manera que mi esquema de clases es el siguiente: Tengo una interfaz (la interfaz DAO) Una implementación de esa interfaz. Y ahora tengo una clase que administra esa interfaz y sirve de punto de entrada para la capa de negocio. Aquí es donde empiezan mis dudas, esta clase Admin, es estática. Tiene una variable estática que es precísamente la interfaz DAO. Todos sus métodos son estáticos, además el método que crea la primera vez la interfaz es síncrono. El funcionamiento es el siguiente: Cuando se llama a un método estático de Admin, primero compruebo si la interfaz DAO es nula, si lo es (lo será la primera vez solo), llamo al método síncrono, que lo que hace es utilizar una factoría que me crea un nuevo objeto que implementa esta interfaz y se lo asigna a mi interfaz. (variable (estática) de clase de la clase Admin). Posteriormente, lo que se hace es invocar al método en cuestión de la interfaz con sus parámetros correspondientes. Mi duda es la siguiente, es posible que tenga problemas de sincronización y que un hilo se "mezcle" con otro a la hora de solicitar la interfaz?. Es decir, imaginaos que hago un create, que lo que hace es insertar determinada información de un bean en la BD, si dos hilos a la vez llaman al create (situación mas que posible), habría alguna posibilidad que se "mezclara" la información de esos bean?, vamos que el bean de un create, pasase a ser el bean del otro create. Se que siempre y cuando se utilice simplemente el método estático y no ninguna variable estática, no tiene pq haber problemas, pero es que precísamente una de las variables de clase de mi clase Admin, es precísamente la interfaz (solo existirá una). Veríais mejor que cada vez que se llame a un create desde Admin, que haga un new de la implementación de la interfaz?? Disculpar el rollo, pero quería intentar explicarme de lo mejor posible, no se si habrá sido peor. Un saludo