Encapsula a sua única instância e controla como e quando os clientes a acessam.
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.
Singleton(Universe):
Define uma operação getSoleInstance que permite aos clientes acessarem sua única instância.