Skip to main content

¿Qué es el patrón Singleton?

El concepto matemático de un singleton es un conjunto de números que contiene un solo número. Los ingenieros de software y los programadores han traducido este concepto en algo llamado un patrón único, en el que varios programas acceden a un conjunto específico de información una sola vez y siempre contiene el mismo conjunto de instrucciones o información. El patrón singleton se usa en lenguajes de programación como Java para definir una variable global, una información que se usa en todo un sistema que permanece igual y necesita definirse solo una vez en lugar de muchas veces.

En la mayoría de los lenguajes de programación, antes de que un programa pueda ejecutarse, requiere información adicional sobre su entorno. La mayor parte de la información específica del programa está contenida en su propio código de programa; sin embargo, un programa a menudo también requiere información variable sobre cosas como la versión del sistema operativo en el que se ejecuta, el hardware en el que se ejecuta y otra información específica que no es exclusiva del programa en sí. Por lo general, esta información está contenida en algo llamado clase u objeto, que es un código de programación independiente que a menudo se encuentra en un archivo separado del programa para que pueda estar disponible para muchos programas diferentes simultáneamente.

Si un lenguaje de programación no usa el patrón singleton, cada programa que requiere información contenida en un objeto accede a él abriendo el objeto con un conjunto de parámetros que especifican qué información en el objeto necesita el programa. Por lo tanto, cada vez que un programa diferente abre el objeto, se crea una instancia diferente del objeto en la memoria de la computadora. Cada instancia del objeto puede contener información diferente, dependiendo de las necesidades específicas de cada programa que lo abra.

Cuando un lenguaje de programación que usa el patrón singleton, como Java, comienza a ejecutar un programa, el programa primero busca los objetos de los que necesita información. Si un objeto aún no está abierto, lo abre sin ningún parámetro específico, haciendo que toda la información contenida en el objeto esté disponible para todos los programas. Si el objeto ya está abierto, simplemente lee la información en el objeto y continúa. De esta manera, la información contenida en un objeto que usa un patrón singleton es siempre la misma, por lo que no es necesario abrir muchas versiones diferentes del objeto simultáneamente. Esto ahorra espacio en la memoria de la computadora y también puede aumentar la velocidad porque otros programas pueden acceder a la información sin tener que perder tiempo creando una nueva versión del objeto.