El concepto matemático de 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 patrón singleton, en el que varios programas acceden a un conjunto específico de información solo una 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 pieza de información utilizada en todo un sistema que permanece igual y debe 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 está ejecutando, el hardware en el que se está ejecutando 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 una pieza independiente de código de programación 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 abre.
Cuando un lenguaje de programación que utiliza el patrón singleton, como Java, comienza a ejecutar un programa, el programa busca primero los objetos de los que necesita información. Si un objeto aún no está abierto, abre el objeto 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.