O Singleton é um padrão de projeto criacional que permite a você garantir que uma classe tenha apenas uma instância, enquanto provê um ponto de acesso global para essa instância.
Singleton deve ser utilizado com cautela, pois nem sempre é útil ter apenas uma instância de uma classe sendo compartilhada por toda a aplicação.
Recomendo utilizar o Singleton:
-
Quando você precisar controlar a concorrência de acesso a recursos compartilhados;
-
Quando uma classe for utilizada com frequência por várias partes distintas do sistema, e essa classe não gerencia nenhum estado da aplicação;
O padrão de projeto singleton tem como definição garantir que uma classe tenha somente uma instância e fornecer um ponto global de acesso a mesma. Para isso, singleton implementa uma operação chamada de Instance que tem como premissa permitir que seus clientes acessem sua única instância, além de ser capaz de criar sua própria instância única.
-
Acesso controlado à instância única.
-
Espaço de nomes reduzido.
-
Permite um refinamento de operações e da representação.
-
Permite um número variável de instâncias.
-
Mais flexível do que operações de classes.
-
Estado global.
-
Utilização de singleton desnecessários.
-
Anti-padrões para muitos programadores.
-
Reversão difícil.
-
Mais complexidades nos testes.
-
Pode ser facilmente quebrado.
O padrão singleton e alcançar seus benefícios para o desenvolvimento de um código limpo e seguro. Singleton pode ser implementado de várias formas.Porém, sua utilização exige cuidados e responsabilidades para utilizá-lo de forma correta e coerente.
Link da gravação do projeto https://drive.google.com/file/d/15HtIvLRBa7uOqv6a9gKdMm-ZmZWDK864/view?usp=sharing