patrones de diseño de software de aprendizaje (nueve) prototipos

semifallo

Ejemplo asegura sistemas de modo único sólo una instancia de una instancia de clase y el exterior se puede acceder fácilmente, facilitando así el control de la cantidad de instancias y ahorrar recursos del sistema. Si desea que los objetos de una clase sólo pueden existir en un sistema, Singleton es la mejor solución.


modo de motivación y definido

Algún tipo de sistema, sólo hay una instancia es importante, por ejemplo, un sistema puede ser sólo un gestor de ventanas o sistema de archivos. Por lo tanto, un objeto del sistema para garantizar la singularidad de una clase que es sólo una instancia es importante.

Singleton garantizar sólo una instancia de una clase en particular, y para crear una instancia de la instancia de todo el sistema y para proporcionar esta clase se llama Singleton clase que proporciona el método de acceso global. Singleton tres puntos: En primer lugar, sólo una instancia de una clase, en segundo lugar, se debe crear una instancia de su propia, sino que debe proporcionar su propio tres en este ejemplo todo el sistema.


Análisis del patrón

Singleton objeto es asegurar que sólo una instancia de la clase, y proporcionar un acceso global a su punto de acceso. Singleton clase tiene un constructor privado, para garantizar que los usuarios no pueden crear instancias directamente a través de la nueva palabra clave. Además, el modelo contiene un método de fábrica estática pública variables miembro privadas estáticas, la existencia del método de fábrica es responsable del control de casos y ejemplos de su propia, y después se almacena en unos variables miembro estática con el fin de garantizar que sólo se crea una instancia. Así, la aplicación de la monomodo Realización tres puntos a la nota:

  1. constructor de la clase Singleton es privada
  2. A las variables miembro privadas propia estáticas
  3. Proporcionar un método de fábrica estática pública
public class Singleton {

    private static Singleton instance = null;

    //私有构造方法
    private Singleton() {

    }

    //静态公有工厂方法,返回唯一实例
    public static Singleton getInstance() {

        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}
public class Client {

    public static void main(String[] args) {

        Singleton s1 = Singleton.getInstance();
        Singleton s2 = Singleton.getInstance();
        System.out.println(s1 == s2);
    }
}

Aquí Insertar imagen Descripción

Ejemplos hambrientos única clase y fórmula singleton perezoso

En la definición de las variables estáticas cuando se crea una instancia singleton clase, cuando la clase se carga Singleton objeto ha sido creado. Cuando se carga esta clase, variables de instancia estáticos se inicializan, entonces el constructor de la clase privada se llama, se creará la única instancia de la clase Singleton.

public class EagerSingleton {

    private static final EagerSingleton instance = null;

    private EagerSingleton() {

    }

    public static EagerSingleton getInstance() {

        return instance;
    }
}

Ejemplo variable de perezoso sola clase estática no está definida en el momento de instancias Singleton, pero cuando el método de fábrica llamar a la instancia de clase estática de una única forma de realización, y por lo tanto no crear una única forma de realización cuando una carga de clase de objeto.

public class LazySingleton {

    private static LazySingleton instance = null;

    private LazySingleton() {

    }

    public static LazySingleton getInstance() {

        if(instance == null) {
            instance = new LazySingleton();
        }
        return instance;
    }
}

Desde el punto de vista de la eficiencia de utilización de recursos, perezoso única forma de realización analógica de fórmula hambrientos clase singleton ligeramente mejor. Y el tiempo de reacción desde el punto de vista de la velocidad, de hambre única forma de realización analógica de fórmula perezoso ligeramente mejor. Sin embargo, la clase singleton del hombre perezoso en la instanciación, debe hacer frente a múltiples hilos simultáneamente por primera vez cuando tales restricciones citadas problemas de acceso.

Supongo que te gusta

Origin www.cnblogs.com/Yee-Q/p/12459989.html
Recomendado
Clasificación