Java设计模式一--单例模式

一、单例模式
单例模式主要分为饿汉式、懒汉式(非线程安全、线程安全、双重检查)、静态内部类、枚举。
1.饿汉式

public class SingleDemo{
  private SingleDemo(){}  // 重写默认构造器,防止外部实例化
  private static SingleDemo instance = new SingleDemo();
  public static SingleDemo getInstance(){
    return instance;
  }
}

2.懒汉式(双重检查)

public class SingleDemo{
  private SingleDemo(){}
  private static volatile DingleDemo instance;
  public static SingleDemo getInstance(){
    if(instance == null){
      synchronized(SingleDemo.class){
        if(instance == null){
          instance = new SingleDemo(); 
        }
      }
      return instance;
   }
}

3.静态内部类式

public class SingleDemo{
  private SingleDemo(){}
  public static getInstance(){
    return SingleDemoHolder.INSTANCE;
  }
  private static class SingleDemoHolder{
    public static final SingleDemo INSTANCE= new SingleDemo();
  }

}

你可能感兴趣的:(Java设计模式一--单例模式)