设计模式の单例模式

常见的单例模式:

  1.饿汉模式

  2.懒汉模式

饿汉模式

步骤:
  1.构造方法私有化.(被private修饰的变量与方法只能在本类使用,因此外界无法通过构造方法直接创建对象,只能通过类名调用该类的public静态成员与方法.)
  2.本类中直接创建一个类的唯一实例,并且是一个私有静态的实例.
  3.创建一个公共的静态方法来返回该实例,外界可以直接通过类名调用该方法获取得到实例对象.
public class SingleTon{
    //构造方法私有化
    private SingleTon(){
    }
    //创建类的唯一实例,使用private static修饰.
    private static SingleTon instance=new SingleTon();

    //创建返回该实例的方法供外界使用,必须是public static修饰.
    public static SingleTon getInstance(){
        return instance;
    }
}
因为该唯一的实例是在该类被加载时就会去创建,因此称为饿汉模式.


懒汉模式

public class SingleTon{
    //构造方法私有化
  private SingleTon(){
  }
  //声明一个类的引用,使用private static修饰.
  private static SingleTon instance;

  //创建返回该实例的方法,使用是public static修饰,方法中判断实例是否已经被实例化过.
  public static SingleTon getInstance(){
    if(instance==null){
        //第一次使用时会实例化该引用.
        instance=new SingleTon();
    }
    return instance;  }
}

私有化构造方法之后,只声明静态私有对象而不实例化,在公有静态方法中判断对象为空时才去实例化一个唯一对象,使用时创建,因此称为懒汉模式
饿汉模式与懒汉模式区别:

饿汉模式:当类被加载时就会去实例化对象,不管是否使用该对象.饿汉模式的特点是加载类时比较慢,但运行时获取对象的速度比较快,线程安全,
懒汉模式:当外部要使用该对象时才会去实例化该对象,即当外部第一次调用该方法时才会去实例化对象,以后再次调用时直接返回该实例后的对象.懒汉模式的特点是加载类时比较快,但运行时获取对象的速度比较慢,线程不安全,
 
原文地址:https://www.cnblogs.com/sev7en-/p/6039925.html