疯狂java


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

两种常用的单例模式


 

  单例设计模式是面试中经常被问到的,常见的就是让写出一个单例模式的例子出来,通过经验的积累我推荐下面2个代码片段,这两种方法差别不大但是记忆起来特别方便。只需记住下面两点就能写出单例设计模式的例子了

  (1)单例模式的类构造方法是私有的

  (2)单例模式返回的实例以static关键字修饰

  下面来看两个单例模式的例子

  1.懒汉模式

  package org.lxh;

  public class UseSingleton {

  private static UseSingleton sin=null;

  private UseSingleton(){}

  public static synchronized UseSingleton getInstance(){

  if(sin==null){

  sin=new UseSingleton();

  }

  return sin;

  }

  }

  2.饥汉模式

  这种模式最简单了代码比上面那种方法要少

  package org.lxh;

  public class UseSingleton {

  private static UseSingleton sin = new UseSingleton();

  private UseSingleton() {

  }

  public static UseSingleton getInstance() {

  return sin;

  }

  }