La era de la informatica

Sunday, April 22, 2007

Solucion Problema 5

Hola a todos,

Como me apunto de forma correcta el Cremero, esta es la solucion al problema 5. Aqui os pongo la solucion que el Cremero me envio por e-mail:

La solución es sencilla: se aplica una implementación del patrón de diseño denominado “Singleton” (un solo objeto en memoria):

public class UnaSolaVez {

            private static UnaSolaVez ObjetoUnaSolaVez == null;  // objeto interno, que luego devolveremos

            private UnaSolaVez() {
                        // no dejamos instanciar con el constructor por defecto, declarándolo privado
            }

            public static UnaSolaVez getObjetoUnaSolaVez() {
                        if (ObjetoUnaSolaVez == null)  // si no se ha reservado memoria entonces lo hacemos       
                                    ObjetoUnaSolaVez = new UnaSolaVez();
                        return ObjetoUnaSolaVez;
            }
};

Como veis es muy sencillo. Aunque es algo mas complicado garantizar que solo se crea un objeto si tenemos varios hillos ejecutandose a la vez. O si tenemos varios "namespaces", en estos casos hay que hacer ciertos cambios en el codigo. No es extremadamente dificil resolver el problema de los hilos concurrentes asi que os animo a comentar esta entrada con vuestras sugerencias!!

1 Comments:

  • Querido amigo, esto no es nada mas ni nada menos que el viejo y querido patrón singleton! Que haríamos si no fuera por él! El mismo se usa para acceder globalmente a una única instancia de una clase.

    Saludos,
    Pablo Pazos Gutierrez.

    By Blogger Pablo, at 4:46 PM  

Post a Comment

<< Home