1、Singleton单例模式,是一种责任型模式。这种模式,通过隐藏构造器和提供对创建对象的单个访问点,实现了将类的职责---创建一个担当着独一无二角色的对象(生产唯一实例),集中于类的单个实例中。
2、它的宗旨:确保某个类只有一个实例,并且为之提供一个全局访问点。
3、它的机制:将该单例对象作为单例类的一个静态域创建实例;显示提供唯一的私有构造器(注意,必须显示提供,否则使用者仍然会调用系统提供的默认构造器来实例对象);提供一个具有公有访问属性的静态方法,利用它获取该类的唯一实例。
4、初始化实例的两种时机:
5、多线程环境中确保创建唯一实例:使用属于当前类的锁进行同步,即使用锁机制来协调不同线程中多个方法的运行。因为我们无法保证,在多线程环境中,一个方法能够持续运行到结束,其它线程的方法才开始运行。此外,我们也应该在多线程环境中,应用这个同步机制,来限制对单例对象内部数据的访问。
6、该模式或许是最负盛名的模式,但由于我们很容易误用它,因此不要轻易使用。不要让Singleton模式成为创建全局变量的唯一方式。注意,如果是想创建供测试用的子类,它可能不是最合适的,因为并不只有一个实例。
7、示例:
public class Singleton{
}