Re: RE: Duda sobre modelo estático
Geckko80 <[email protected]>
| Newsgroups | gmane.comp.java.javaspain |
|---|---|
| Message-ID | <[email protected]> |
Buenas voqpasa
Veamos, al tener una clase estatica no podrias tener problemas de que se
mezclen los hilos, ya que justamente para eso esta, me explico con un
ejemplillo corto (espero haber ententido lo que propones)
Tu clase estatica seria por ejemplo DAOManager.java, esta tendria el
punto de entrada a la base de datos, que implementaria lo que es el
interfaz estatico, de manera que en el constructor tendria algo asi (es
un ejemplillo)
class DAOManager implements IDAOManager{
SessionBD DAOManager{
if (this.session == null){
this.session = DAOManager.crearSession();
}
return this.session
}
}
Creo que se entiende (no es codigo valido, es un ejemplillo).
Entonces cuando pides esa session, el punto de entrada a la base de
datos es UNICO asi que aunque varios la invoquen a la vez los threads
irian de uno en uno (pa mi que me estoy liando mucho)
Ejemplo de nuevo:
Clase1:
[..........]
SessionBD session = DAOManager.getSession
session.hacerAlgoConLaBD(parametros);
[..........]
Clase2:
[..........]
SessionBD session2 = DAOManager.getSession
session2.hacerAlgoConLaBD2(parametros);
[..........]
Aunque se invoquen a la vez tanto la clase 1 como la clase 2 el punto de
entrada a la base de datos es el mismo, asi que se ejecutaria una de
ellas (la que primero llegase) y luego la otra.
Espero haberme explicado.
voqpasa2001 escribió:
>
> Hola de nuevo, nadie me echa un cable??
>
> --- En [email protected] <mailto:javaSpain%40yahoogroups.com>,
> "voqpasa2001" <ppppppjava@...> escribió:
> >
> > 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
> >
>
>