Ø 单例类(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 {
}
在什么情况使用单例模式
使用单例模式有 一个必要条件:在一个系统要求 一个类只有—个实例时才应当使用单例模式。反过来说,如果一个类可以有几个实例共存.那么就没有必要使用单例类。