Está en la página 1de 7

Patrones de diseo Singleton

Irma Ruiz Aguilar Areli Morales Palma

Singleton (nico)
Propsito
Garantiza que una clase slo tenga una instancia, y proporciona un punto de accesso global a ella.

Estructura

Aplicabilidad
Deba haber exactamente una instansia de una clase, y sta debe ser accessible a los clientes desde un punto de accesso conocido La nica instancia debera ser extensible mediante herencia, y los clientes deberan ser capaces de usar una instancia extendida sin modificar su cdigo

Participantes

Define una operacin Instancia que permite que los clientes accedan a su nica estancia. La Instancia es una operacin de clase. Puede ser responsable de crear su nica instancia

Beneficios del patrn

Singleton
o Acceso Controlado a la nica instancia. o Espacio de Nombres Reducido. o Permite el refinamiento de operaciones y la representacin. o Permite un numro variable de instancias. o Ms flexible que las operaciones de clase

Implantacin de Singleton

Garantizar una nica Instancia Hace que una instancia sea una instancia normal de la clase, pero dicha clase se escribe de forma que solo pueda crear una instancia. Usualmente esto se realiza ocultando la operacin de una funcin miembro estatica o un mtodo clase que gaarantice que solo se crea una Instancia, esta operacin tiene acceso a la variable que contiene la instancia y asegura que la variable este inicializada con dicha instancia antes de devolver su valor.

Implementacin Singleton

Se puede definir la operacin de clase mediante una funcin miembro estatica Instancia de la clase Singleton. Singleton tambin define una variable miembro esttica_ instancia que contiene un puntero a su nica instancia

Implantacin de Singleton

Crear una subclase Singlenton En esencia, la variable que hace referencia a la nica instancia debe ser inicializada con una instancia dce la subclase. La tecnica ms sencilla es determinar qu Singleton queremos usar en la operacinInstancia de Singleton Otro modo de elegir la subclase de Singleton es sacar la implementacin de Instancia fuera de la clase padre y ponerla en la subclase, esto permite que un programador decida la clase de Singleton durante el enlazado pero la oculta a los clientes de Singleton

Implementacin Singleton
Un enfoque mas sencillo usa un registro de Objetos de Singleton. En vez de que sea Instancia quien defina el conjunto de posibles clases de Singleton, las clases Singleton pueden registrar su nica instancia por su nombre en un registro conocido por todos

Este enfoque fija la eleccion de la clase durante el enlazado, lo que dificult alegir la clase de Singleton en tiempo de ejecucin. Usar instrucciones condicionales para determinar la subclase es ms flexible, pero fija el conjunto de posibles clases Singleton.

También podría gustarte