1. Modelo singleton estilo faminto
(1) Conceito de padrão singleton estilo faminto
O padrão singleton estilo Hungry é inicializado imediatamente quando a classe é carregada e um objeto singleton é criado . É absolutamente thread-safe . É instanciado antes que o thread apareça. Não há problema de segurança de acesso.
(2) Implementação de código
public class HungrySingleton {
private static final HungrySingleton hungrySingleton = new HungrySingleton();
private HungrySingleton(){
}
public static HungrySingleton getInstance(){
return hungrySingleton;
}
}
(3) Vantagens e desvantagens
- Vantagens: alta eficiência de execução, alto desempenho, sem travamentos
- Desvantagens: Em alguns casos, pode causar desperdício de memória, destruição de reflexão e destruição de serialização de singletons.
(4)Cenários de uso
- O padrão singleton estilo Hungry é adequado para situações onde há poucos objetos singleton. Escrever dessa forma pode garantir segurança absoluta do thread e eficiência de execução relativamente alta.
- Mas sua deficiência também é óbvia, ou seja, todas as classes de objetos são instanciadas quando são carregadas.Se houver um grande número de objetos singleton no sistema, a inicialização do sistema causará muito desperdício de memória.