Está en la página 1de 2

Ejemplo Patrn Singleton

Vamos a ver uno de los Patrones ms comunes en


desarrollo de software, como he indicado en otras entradas tal vez
muchas veces lo utilizamos sin saber ya que es un patrn muy sencillo
de implementar.........de igual forma veremos un ejemplo simple
donde podremos ver su aplicacin.

Qu es?

El Patrn Singleton tambin se conoce como Instancia nica, su


objetivo es restringir la creacin de objetos pertenecientes a una clase,
de modo que solo se tenga una nica instancia de la clase para toda la
aplicacin, garantizando as un punto de acceso global al objeto
creado.

Para implementarlo, la clase Singleton debe tener un constructor


privado que solo ser accedido desde la misma clase, se crea tambin
una instancia privada de la clase, as como un mtodo esttico que
permita el acceso a dicha instancia de la
forma ClaseSingleton.getInstanciaSingleton();

Este patrn es muy til cuando necesitamos crear un clase comn y


global para todo el sistema, donde no nos interese crear varias
instancias de la misma, por ejemplo podramos pensar en una clase
conexin que utiliza toda la aplicacin, si creamos varias instancias de
esta podramos llenar el heap del sistema con muchos objetos
innecesarios que se crean cada vez que instanciamos la clase, por eso
restringiendo la creacin a un nico objeto evitamos problemas de
rendimiento y trabajo para el garbage collector...
Otro ejemplo podra ser la creacin de un objeto que carga los
parmetros de un archivo de propiedades, de esta
manera evitaramos que el sistema lea el archivo cada vez que lo
necesite, en vez de eso tan solo llamaramos al objeto que contiene los
parmetros necesarios...

El Problema.
Se solicita generar un historial de los eventos ejecutados por 3 usuarios
del sistema, estos eventos se generan cada vez que alguno de los
usuarios presiona un botn determinado de un panel de opciones, este
historial debe contener la fecha y hora de ejecucin del evento, adems
del usuario y opcin presionada.

La Solucin.
Como nos piden que se genere un historial de los eventos ejecutados
por los usuarios utilizaremos el patrn Singleton, ya que este historial
es general para todos los usuarios del sistema, as crearemos un punto
global para la aplicacin que permita ir almacenando cada evento
generado independientemente de quien lo ejecute...

La Aplicacin.

El sistema es muy simple, se contar con 3 usuarios del sistema


definidos por defecto, una ventana principal que permitir seleccionar
alguno de los usuarios y posteriormente cargar una ventana donde el
usuario seleccionado podr ejecutar los eventos disponibles, por
ltimo, se tendr una ventana donde podremos ver el histrico de
eventos ejecutados en la aplicacin.

El sistema se divide en un paquete principal que contiene la clase que


ejecuta la aplicacin, un paquete de ventanas donde almacenaremos
las interfaces graficas de usuario, un paquete va donde tenemos la
clase persona necesaria para l envi de usuarios y por ltimo el
paquete singleton que contiene la clase representativa del Patrn.

También podría gustarte