这里直接上代码吧,比较简单的一种设计模式

分为懒汉式跟饿汉式,当然要考虑线程同步跟效率问题

饿汉式:

class Single

{

  private static final Single single = new Single();//所谓饿汉式,就是这个意思,就是说不管你需不需要我都创建出来,静态的关键是static而final在懒汉式中就不能使用

                                                                         //了,如果使用了那么这个就是个常量了,在以后我们创建这个的时候就是不可变的了

  private Single(){}

  private static Single getInstance()

  {

    return single;

  }

}

 

懒汉式:

class Single

{

  private static Single single=null;//这里为空,所以说是懒汉式,就是说只有需要的时候我才创建,不需要我不创建,是为懒汉式,注意不能为final常量

  private static Singel(){}

  private static Single getInstance()

  {

    if(single==null)//这里的判断就是说为了当single为null的时候我就不执行下边的判断了,提高效率

    {

      synchronized(Single.class)//这里我进行了同步,静态函数的锁是函数class

      {

        if(Single.class)//这里的判断就是为了辨别是否要进行Single的创建

        {

          single = new Single();//创建出单例

        }

      } 

    }

    return single;//肯定是在最后进行返回的

  }

}