sábado, 9 de mayo de 2009
Singleton

Singleton es un patrón creacional y está diseñado para restringir la creación de objetos pertenecientes a una clase o el valor de un tipo a un único objeto.

Características generales de este patrón:

Nombre:

Singleton.

También conocido como:

Patrón de Instancia única.

Propósito:

Asegurar que una clase tenga una sola instancia y proveer un punto global de acceso a la misma.

Aplicabilidad:

Este patrón se utiliza generalmente cuando:

· Debe haber exactamente una instancia de una clase, y debe ser accesible a los clientes en un punto de acceso conocido.

· Cuando la única instancia debe ser extensible y los clientes deben ser capaces de usar la instancia extendida sin modificar el código.

· Aplique el Singleton cuando quiera sólo una instancia de una clase, pero que esta deba estar disponible en todas partes.


Estructura:


Participantes:

·  Define una operación Instance que permite a los clientes acceder a la única instancia.

·  Puede ser responsable de la creación de su propia y única instancia.

Colaboraciones:

Los clientes acceden a la única instancia a través de la operación Instance.

Consecuencias:

· Acceso controlado a la única instancia.

· Espacio de nombres reducido (no se requieren variables globales).

· Permite refinamiento de operaciones y representación. La clase se puede extender, y es fácil de configurar una aplicación con una instancia de la clase extendida. Se puede configurar en tiempo de ejecución.

· Permite un variable número de instancias. El patrón hace fácil cambiar y permitir más de una instancia de la clase Singleton. Además, permite utilizar el mismo enfoque para controlar el número de instancias que la aplicación utiliza, solo la operación que permite el acceso a la instancia tiene que ser cambiada

· Más flexible que las operaciones de clase.


Implementación:

Para aplicar el patrón Singleton, se requiere:

Singleton - Proporciona un constructor privado, mantiene una referencia privada estática a la única instancia de esta clase, y proporciona un método estático de acceso para devolver una referencia a la única instancia.

El resto de la implementación de la clase Singleton es normal. El método estático de acceso puede tomar decisiones sobre qué tipo de instancia crear, basado en las propiedades del sistema o los parámetros pasados en el método de acceso.

Patrones relacionados:

· Abstract Factory.

· Prototype.

· Builder.


Etiquetas: , ,

 
posted by Camilo Mojica at 18:47 | Permalink |


0 Comments: