Está usted en Indice > Construcción > Lenguajes > Java > Lecciones y Paso a Paso > Singletons en Java, el patrón instancia única
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Singletons en Java, el patrón instancia única

Muchas veces, en nuestras aplicaciones necesitamos acceder fácilmente a un objeto único, la instancia única de cierta clase: un gestor de impresoras, un pool de conexiones a una base de datos, un gestor de parámetros de configuración, etc.

    Lo primero que podemos pensar es que necesitamos una variable global, pero como dice un profesor que conozco: “las variables globales apestan”, además, no aseguran que no podamos instanciar más de un objeto de esa clase. La solución es hacer que sea la propia clase la responsable de controlar la existencia de una única instancia. Existe un patrón de diseño clásico que dicta este comportamiento: el singleton o instancia única.

¿Qué es un patrón de diseño?

    No importa que libro o página web se mire, bajo toda definición de patrón que se encuentre subyace la misma idea: un patrón es una solución a un problema de diseño no trivial que es efectiva y reusable; efectiva porque ya ha resuelto un problema similar anteriormente de manera satisfactoria y reusable porque se puede aplicar a muchos problemas de diseño en diferentes circunstancias.

    Trabajar con patrones es como jugar con un Mecano o un Lego. Cogemos piezas que funcionan y sabemos lo que hacen, las adaptamos a nuestras necesidades y las juntamos.

    Aunque elegir un patrón de diseño no siempre es tarea del programador - que muchas veces se encuentran con la labor de traducir a código lo que otra persona ha diseñado -, este debe saber como plasmar dicho patrón en su código. Normalmente la experiencia es suficiente. Sin embargo nadie hace ascos a una ayudita. Y en eso estamos.

¿Qué vamos a ver?

    A lo largo de este artículo intentaremos explicar en que se basa el patrón singleton e implementarlo de varias maneras. Comentaremos además extensiones, y ciertas peculiaridades que podemos encontrarnos si lo usamos.

Estructura, qué es un singleton

    Con un diagrama UML, un singleton es algo tan simple como lo siguiente:

Diagrama UML de un Singleton


    Podemos observar dos características básicas:

        Restricción de acceso al constructor...
Con esto conseguimos que sea imposible crear nuevas instancias.Solo la propia clase puede crear la instancia.
        Mecanismo de acceso a la instancia...
El acceso a la instancia única se hace a través de un único punto bien definido, que es gestionado por la propia clase y que puede ser accedido desde cualquier parte del código – en principio -

    Parece sencillo. Más adelante veremos posibles extensiones que podemos aplicar al patrón inicial.



Usuarios que han visto este tema también han visto...

- Clonación de objetos en Java
- ¿Qué es el path y el classpath de Java?
- Utilerias Java
- Exprimiendo Java Web Start
- Usando calendarios y restando fechas en Java


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad






Publicidad








Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 21-02-2017 a las 23:35:58