疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java设计模式之单例模式


 

   

  单例模式-饿汉模式

  1、将构造方法私有化,不允许外部直接创建对象 private Singleton(){}

  2、自己在类的内部创建一个唯一实例 private static Singleton instance = new Singleton();

  3、提供一个用于获取实例的方法 public static Singleton getInstance(){return instance};

  public class Singleton{

  private static Singleton instance=new Singleton();

  private Singleton(){}

  public staitc Singleto getInstance(){   return instance; } }

  单例模式-懒汉模式

  1.构造函数私有化

  2.创建类的唯一实例静态成员变量(为null)

  3.创建获取单一实例的静态成员方法 区别在于实例本身产生的时间(类加载时还是类使用时)

  

  public class Singleton{

  private Singleton(){}

  private static Singleton instance;

  public static Singleton getInstance(){

  if(instance==null){

  return new Singleton();

  } else {

  return instance;

  }

  }

  复制代码

  区别:

  饿汉式:声明的同时直接实例化。 特点:加载类时比较慢,但运行时获取对象的速度比较快,线程安全。

  懒汉式:声明的时候不实例化。 特点:加载类时比较快,但运行时获取对象的速度比较慢,线程不安全。