单例模式饿汉和懒汉

 保证一个类只有一个实例一个对象,并且提供一个访问该实例的全局访问点。

由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要比较多的资源时,如读取配置产生其他依赖对象时,就可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决单例模式,可以在系统设置全局的访问点优化,还共享资源方案,例如可以在设计一个单例类负责所有数据表的映射处理
 

饿汉式:建成安全,效率高,但是不可以延迟加载

不管程序后面是否用到该对象,初始都要创建好私有静态的对象

1.构造器私有

2.初始就要创造对象私有静态

3.只有一个public出口

public class Test {
    private static  Test test = new Test();

    private Test() {
    }
//未同步效率高
    public static Test getTest(){
        return  test;
    }
}

懒汉式:建成安全,效率不高,但是可以延迟加载

不管程序后面是否用到该对象,初始只是创建个私有静态变量当访问到时在创建对象

1.构造器私有

2.访问点用到时才可以创造对象

3.只有一个public出口

public class Test {
    private static Test test ;

    private Test() {
    }
    //已同步效率不高可延迟加载
    public static synchronized Test getTest(){
        if(test==null){
            test=new Test();

        }
        return  test;
    }
}

猜你喜欢

转载自blog.csdn.net/wqr111/article/details/118422662