Propósito
La intención de este patrón es controlar la creación de objetos de una clase, de
forma de que solo exista una única instancia de dicha clase en todo momento.
Adicionalmente provee un mecanismo que permite el acceso fácil y único a esta
única instancia. En resumen, el patrón Singleton garantiza que una clase sólo tenga una instancia y proporciona un punto de acceso global a ésta instancia.
La clave para crear un Singleton es prevenir a los programas clientes (de nuestra solución/funcionalidad/etc) tener acceso a la creación de un objeto exceptuando la forma que nosotros proveemos.
Ejemplos
Aunque puede haber muchas impresoras en el sistema, sólo puede haber una
cola de impresión de la impresora.
En un sistema operativo sólo debe haber un sistema de archivos y un gestor de
ventanas.
Un DataSource maneja un número bien definido de conexiones, pero debe
haber una solo DataSource en el sistema.
Ejemplos en el JDK
java.lang.Runtime#getRuntime()
java.awt.Desktop#getDesktop()
java.lang.System#getSecurityManager()
Problema
La aplicación necesita una única instancia de un objeto. Además, la inicialización se da cuando se necesita y el acceso se requiere que sea global a nivel de la aplicación.
Aplicabilidad
Debe haber exactamente una instancia de una clase, y debe ser accesible a los
clientes desde un punto de acceso bien conocido.
No hay comentarios:
Publicar un comentario