El patrón singleton del patrón de diseño es demasiado simple.

Definición básica

El patrón singleton es garantizar que solo haya una instancia de una clase determinada y proporcionar un punto de acceso global. El patrón singleton tiene las siguientes características:

  • Solo tiene una instancia.
  • Debe ser instanciado por sí solo.
  • Debe proporcionar puntos de acceso a todo el sistema por sí mismo.

Implementación de código

Hambriento

Inicializar directamente variables estáticas. Esto garantiza la seguridad del hilo.

public  class Singleton {
 private  static Singleton singleton = new Singleton ();
private Singleton () { 
} 
public  static Singleton getInstance () {
 return singleton; 
} 
}

Perezoso

Carga bajo demanda Manejar con sincronizado. En otras palabras, convierta el método getInstance () en un método sincrónico

 clase pública LazySingleton {
 LazySingleton volátil estático privado  lazySingleton;
privado LazySingleton () { 
} público estático LazySingleton getInstance () {
 if (lazySingleton == null ) {
 sincronizado (LazySingleton. class ) { 
lazySingleton = new LazySingleton (); 
} 
} return lazySingleton; 
} 
} 
 

Ventaja

Recursos del sistema guardados. Debido a que solo hay un objeto de instancia en el sistema, para algunos sistemas que necesitan crear y destruir objetos con frecuencia, el modo singleton sin duda ahorra recursos del sistema y mejora el rendimiento del sistema.
Debido a que la clase singleton encapsula su única instancia, puede controlar estrictamente cómo y cuándo los clientes acceden a ella.
Desventajas

Debido a que no hay una capa de abstracción en el patrón singleton, es muy difícil expandir la clase singleton.
Código fuente JDK

Perezoso

java.lang.Runtim

Hambriento

java.lang.System

​​​​​​​

Supongo que te gusta

Origin www.cnblogs.com/xueSpring/p/12750012.html
Recomendado
Clasificación