设计模式-单例模式

27 阅读1分钟

设计模式-单例模式

单例模式主要用于对象的创建,而且要确保该类所创建的对象是唯一的。
单例模式有两种实现方法:

  • 饿汉式
  • 懒汉式

饿汉式

在该类加载的时候就创建出对象,无论是否调用创建对象的方法,这种容易造成资源的浪费

public class SingleDemo1 {
    /**
     * 将构造器私有化 防止该对象被外部创建
     */
    private SingleDemo1() {
    }

    /**
     * 在该类内部创建一个对象 并私有化
     */
    private static SingleDemo1 singleDemo1 = new SingleDemo1();

    /**
     * 创建一个对外的接口,把创建的对象返回出去
     * @return
     */
    public static SingleDemo1 getInstance(){
        return singleDemo1;
    }

}

懒汉式

在调用对象创建的方法时,对象才被创建,但是线程不安全

public class SingleDemo1 {
    /**
     * 将构造器私有化 防止该对象被外部创建
     */
    private SingleDemo1() {
    }

    /**
     * 在该类内部创建一个空对象
     */
    private static SingleDemo1 singleDemo1 = null;

    /**
     * 当该方法被调用的时候会去判断对象是否为null,若是创建一个
     * 返回出去,若不是,就把原来的对象返回出去,确保对象唯一
     * @return
     */
    public static SingleDemo1 getInstance(){
        if (singleDemo1==null){
            singleDemo1 = new SingleDemo1();
        }
        return singleDemo1;
    }

}

目前学习到这么多,后续学习会再来完善