Qual é o padrão Singleton?
O conceito matemático de um singleton é um conjunto de números que contém apenas um único número. Engenheiros de software e programadores traduziram esse conceito em algo chamado padrão singleton, no qual um conjunto específico de informações é acessado por vários programas apenas uma vez e sempre contém o mesmo conjunto de instruções ou informações. O padrão singleton é usado em linguagens de programação como Java para definir uma variável global, uma informação usada em todo o sistema que permanece a mesma e precisa ser definida apenas uma vez e não muitas vezes.
Na maioria das linguagens de programação, antes que um programa possa ser executado, são necessárias informações adicionais sobre seu ambiente. A maioria das informações específicas do programa está contida em seu próprio código de programa; no entanto, um programa geralmente também requer informações variáveis sobre coisas como a versão do sistema operacional em que está sendo executado, o hardware em que está sendo executado e outras informações específicas não exclusivas do próprio programa. Geralmente, essas informações estão contidas em algo chamado classe ou objeto, que é uma parte independente do código de programação, geralmente contida em um arquivo separado do programa, para que possa estar disponível para muitos programas diferentes simultaneamente.
Se uma linguagem de programação não usar o padrão singleton, cada programa que requer informações contidas em um objeto acessa-o, abrindo o objeto com um conjunto de parâmetros que especificam quais informações no objeto o programa precisa. Portanto, sempre que um programa diferente abre o objeto, uma instância diferente do objeto é criada na memória do computador. Cada instância do objeto pode conter informações diferentes, dependendo das necessidades específicas de cada programa que o abre.
Quando uma linguagem de programação que usa o padrão singleton, como Java, começa a executar um programa, o programa primeiro procura os objetos dos quais precisa de informações. Se um objeto ainda não estiver aberto, ele será aberto sem parâmetros específicos, disponibilizando todas as informações contidas no objeto para todos os programas. Se o objeto já estiver aberto, ele simplesmente lê as informações no objeto e continua. Dessa forma, as informações contidas em um objeto usando um padrão singleton são sempre as mesmas, portanto, não há necessidade de abrir muitas versões diferentes do objeto simultaneamente. Isso economiza espaço na memória do computador e também pode aumentar a velocidade, porque outros programas podem acessar as informações sem precisar gastar tempo criando uma nova versão do objeto.