Ø 单例类(singleton)可以保证系统中只可能由该类的一个对象,而且这个对象由类自行初始化。

Ø 单例类一般可以用来抽象系统中一些共享的资源。

Ø 单例类有如下特点:

   § 单例类只有一个实例。

   § 单例类自行创建并提供这个唯一的实例。

Ø 资源管理器一般做成单例模式。譬如每台计算机可以有若干个打印机,但只能有 一个Printer ,以避免两个打印作业同时输出到打印机中。

Ø 单例模式有以下的特点:

   § 单例类只能有一个实例。

   § 单例类必须自己创建自己的惟一的实例。

   § 单例类必须给所有其他对象提供这一实例。

Ø 饿汉式单例类

Private static final EagerSingleton m_instance=new EagerSingleton();

       

       

  

     

  

l  

  

  

  

  


l  

  

  

  


l   值得指出的是,由于构造于是

  

Ø 

Public class LazySingleton

{

     

            

}

Private LazySingleton(){}


Synchronized public static LazySingleton

     

{

     

     

     

}

Return m_instance;

}

l  静态工场方法使用了同步化,

 


l  单从资源利用效率角度来讲,

 


l  从速度和反应时间角度来讲,

 



l  然而,懒汉式单例类在实例

 

 

 

 

 

 

 

 



具体的一个例子:

class Singleton{

}

class Singleton{

}

public class Test {

}

在什么情况使用单例模式

使用单例模式有 一个必要条件:在一个系统要求 一个类只有—个实例时才应当使用单例模式。反过来说,如果一个类可以有几个实例共存.那么就没有必要使用单例类。