| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| title | Singleton Pattern in Java: Implementing Global Access Points in Java Applications | ||||
|---|---|---|---|---|---|
| shortTitle | Singleton | ||||
| description | Explore the Singleton Pattern in Java with our comprehensive guide. Learn how to implement efficient object management for your Java applications, ensuring optimal use of resources and easy access with examples and detailed explanations. | ||||
| category | Creational | ||||
| language | pt | ||||
| tag |
|
Assegurar que a classe Java possua somente uma instância e forneça um ponto global de acesso a essa instância Singleton.
Exemplo do Mundo Real
Uma analogia do mundo real para o padrão Singleton é um governo emitindo um passaporte. Em um país, cada cidadão pode receber apenas um passaporte válido por vez. O escritório de passaportes garante que nenhum passaporte duplicado seja emitido para a mesma pessoa. Sempre que um cidadão precisa viajar, ele deve usar este passaporte único, que serve como o identificador único e globalmente reconhecido para suas credenciais de viagem. Este acesso controlado e gerenciamento de instância exclusivo espelham como o padrão Singleton garante o gerenciamento eficiente de objetos em aplicativos Java.
Em outras palavras
Assegura que somente um objeto de classe em particular seja criado.
De acordo com a Wikipédia
Na engenharia de software, o padrão Singleton é um padrão de design de software que restringe a instanciação de uma classe a um objeto. Isso é útil quando exatamente um objeto é necessário para coordenar ações no sistema.
Joshua Bloch, Effective Java 2nd Edition pg.18
Um tipo Enum de elemento único é a melhor maneira de implementar um Singleton
public enum EnumIvoryTower {
INSTANCE
}Então para usar:
var enumIvoryTower1 = EnumIvoryTower.INSTANCE;
var enumIvoryTower2 = EnumIvoryTower.INSTANCE;
LOGGER.info("enumIvoryTower1={}", enumIvoryTower1);
LOGGER.info("enumIvoryTower2={}", enumIvoryTower2);A saída do console
enumIvoryTower1=com.iluwatar.singleton.EnumIvoryTower@1221555852 enumIvoryTower2=com.iluwatar.singleton.EnumIvoryTower@1221555852
Use o padrão Singleton quando
Benefícios:
Desafios:
| Back | FazBrowse Home | New Git URL |