Singleton

Solução Proposta

Encapsula a sua única instância e controla como e quando os clientes a acessam.

Vantagens

Desvantagens

Exemplo

Deseja-se implementar uma engine (biblioteca) para criar jogos de batalhas espaciais utilizando o conceito de Universo, que deve ser único por definição. Assim, a engine deve garantir que um único exemplar de Universo seja criado em um jogo. A classe Universe age como um Singleton. Essa classe não tem um construtor público, então a única maneira de obter seu objeto é chamando o método estático getSoleInstance. Esse método coloca o primeiro objeto criado em cache e o retorna em todas as chamadas subsequentes. 

Diagrama de Classe

Singleton - Diagrama

Participantes

Singleton(Universe):

Define uma operação getSoleInstance que permite aos clientes acessarem sua única instância. 

Padrões Relacionados