单例模式

/**
* 饿汉式
*
*/
class Singleton {
  //1.私有构造,其他类就不能访问该构造方法了
  private Singleton () {};
  //2.创建本类对象
  private final static Singleton singleton = new Singleton();
  //3.对外提供公共的访问方法
  public static Singleton getSingleton() {
  return singleton;
  }
}

 

 

/**
* 懒汉式
*
*/
class Singleton2{
//1.私有构造方法,其他类就不能访问该构造方法了
  private Singleton2() {};
  //2.声明一个引用
  private static Singleton2 singleton2;
  //3.对外提供公共的访问方法
  public static Singleton2 getSingleton() {
  if(singleton2 == null) {
  singleton2 = new Singleton2();  
  }
  return singleton2;
  }
}

 

/*
* 饿汉式和懒汉式的区别
* 1.饿汉式是空间换时间(一开始就创建对象),懒汉式是时间换空间(开始只是声明,调用的时候判断是否创建对象,否,才会创建对象)
* 2.多线程访问时,饿汉式不会创建多个对象,懒汉式有可能会创建多个对象

*/

 

/**
* 没有名字的单例模式
*
*/
class Singleton3{
       //1.私有构造方法,其他类就不能访问该构造方法了
       private Singleton3() {};
       //2.对外提供公共的静态常量
  public static final Singleton3 singleton3 = new Singleton3();
}

posted @ 2019-03-11 13:34  幻音坊-女帝  阅读(91)  评论(0)    收藏  举报