Este artículo describe el uso de dos patrones singleton en Java. Compártelo para su referencia, como sigue:
Según el método de carga, hay dos implementaciones del modo singleton:
Privado: solo usado en la misma clase
estática: esta clase es un método de clase y no puede llamar a los métodos de instancia. /Variable global de clase
Final: el método o la variable de miembro no se pueden modificar
1. Estilo de hombre hambriento
clase pública EAGERSIGLETON {private static final Eagersigleton instancia = new Eagersigleton (); private Eagersigleton () {} //// Constructor privado Public Eagersigleton getInstance () {// Instancia de retorno del método de fábrica estática;}}}2. Chico perezoso
clase pública Lazysigleton {private static final lazysigleton instancia = null; private lazysigleton () {} // constructor privado public sincronizado Lazysigleton getInstance () {// método de fábrica static, nota el sincronizado (instancia == null) {instancia = newySigleton ();}Análisis y comparación:
Similitudes:
El patrón de singleton pertenece al patrón de creación, asegurando que solo una instancia de esta clase exista en el mismo JVM. En los dos patrones Singleton anteriores, se puede ver:
① Los constructores de ambos métodos son privados.
② Las interfaces externas son todos métodos de fábrica.
Diferencias:
El estilo hambriento obtiene directamente una instancia de esta clase cuando se carga la clase. Se puede decir que la fórmula está vinculada en la etapa inicial. El estilo perezoso no apunta a un objeto específico cuando la clase se carga. En cambio, se instancia después de que se llama al método de fábrica. Por lo tanto, el primero es rápido y el segundo es lento. Pero este último puede cargar otras clases, que son altamente flexibles (es decir, expansión dinámica).
Para obtener más contenido relacionado con Java, los lectores interesados en este sitio pueden ver los temas: "Estructura de datos de Java y tutorial de algoritmo", "Resumen de las puntas de nodo de operación Java DOM", "Resumen de los archivos Java y consejos de operación de directorio" y "Summary of Java Cache Operation Tips" ".
Espero que este artículo sea útil para la programación Java de todos.