关于java单例设计模式

关于java单例设计模式

什么是单例设计模式,顾名思义:单例设计模式就是确保一个类里只有一个实例的设计模式,这也是这个设计模式的优势,这个类里只会有一个实例。java

它的步骤:
1>咱们开发一个类,构造方法私有化,保证不能在程序中随意new对象
2>在类里定义一个静态变量,实例化一个该类的实例(外界在调方法时,只能获得一个实例,是一个单例的类)设计模式


两种形式:安全

1.饿汉式单例类
  public class Cat{
    //static属性保证了只持有一个Cat实例,每次调用静态方法,都返回同一个Cat实例的引用
    private static Cat cat = new Cat();
    //私有化构造方法
    private Cat(){
    } //提供静态的返回Cat实例的方法
    public static Cat getInstance(){
    return cat;
    }
  }多线程

2.懒汉式单例(何时调用静态方法获取实例,何时在建立对象)线程

  public class Cat{
    // static属性:只存一份
    private static Cat cat;
    // 私有化构造方法
    private Cat() {
    }
    //提供静态的返回Cat实例的方法
    public static Cat getInstance() {
      if (cat == null) {
      synchronized (Cat.class) {
      if (cat == null) {
      cat = new Cat();
      }
    }
    }
    return cat;
    }
  }设计

注:懒汉式单例在多线程环境下不安全,要加同步锁synchronized,而后在同步代码块中加一层判断,双重断定锁j就能够啦。对象

相关文章
相关标签/搜索