Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Singleton
Este patrón es parte de los patrones de diseño creacionales que tratan con los
mecanismos de creación de objetos, intentando crear objetos de manera adecuada a
la situación.
3. Intención:
El patrón Singleton tiene como objetivo asegurar que una clase tenga solo una
instancia y proporcionar un punto de acceso global a ella.
A veces necesitamos tener solo una instancia de una clase. Por ejemplo, un sistema
puede necesitar un objeto de registro global o un objeto de base de datos compartida.
En tales casos, se requiere controlar el acceso a la instancia de esa clase y asegurarse
de que no se creen instancias adicionales.
Supongamos que tienes una clase que debe tener una única instancia en todo el
sistema, como una clase de registro o una clase de configuración. El patrón Singleton
garantiza que solo exista una instancia de esa clase y proporciona una forma de
acceder a ella globalmente.
6. Aplicabilidad:
✓ Cuando solo se necesita una única instancia de una clase en todo el sistema.
✓ Cuando se necesita un punto de acceso global a esa instancia única.
7. Estructura y clases participantes:
Singleton: Esta entidad abstracta representa la clase que tiene solo una instancia y
proporciona un método para acceder a ella. El Singleton suele tener un método
estático llamado getInstance() que devuelve la instancia única de la clase. Además,
puede tener otros métodos y atributos propios según sea necesario. El Singleton se
encarga de mantener la única instancia de la clase y garantizar que no se creen
múltiples instancias de ella. Su rol principal es proporcionar un punto de acceso global
a esa instancia única para que otros objetos puedan utilizarla.
El constructor del Singleton debe ocultarse del código cliente (debe ser declarado de
alcance privado). La llamada al método getInstance() debe ser la única manera de
obtener el objeto de Singleton.
8. Colaboraciones:
9. Consecuencias:
Consecuencias positivas:
• Puedes tener la certeza de que una clase tiene una única instancia.
• Obtienes un punto de acceso global a dicha instancia.
• El objeto Singleton solo se inicializa cuando se requiere por primera vez.
Consecuencias negativas:
El patrón Singleton tiene algunas referencias cruzadas con otros patrones de diseño.