单例模式

    技术2022-07-10  176

    单例模式

    是什么

    确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。

    为什么

    有的类在使用的时候不管在什么地方都需要能取到,它的一些属性需要在不同共享,又不便于多次创建,这样的情况,我们就应该使用单例模式。

    实现

    立即加载的单例模式

    class Test2{ //私有的构造方法 private Test2(){} //私有创建该对象 private static Test2 test = new Test2(); //公有的方法,被外部调用获取对象 public static Test2 getTest(){ return test; } }

    懒加载的单例模式

    class Test { //懒加载的单例模式 private Test(){} //在这里对象为null private static Test test = null; //当被调用该方法时,先判断该对象是否被实例,实例直接返回,否则先实例在返回 public static Test getTest(){ if (test == null){ test = new Test(); } return test; } }

    但是可能会遇到多线程的问题于是我们给get方法加同步或者加锁

    public static synchronized Test getTest(){ if (test == null){ test = new Test(); } return test; } public static Test getTest(){ if (test == null){ synchronized (Test.class) { if (test == null) { test = new Test(); } } } return test; }
    Processed: 0.017, SQL: 10