单利模式是指对象在整个程序中只有一个实例,提供一个访问方法供全局访问。实现单例模式有如下要求:
1.私有化构造函数:将构造函数定义为私有,以防外部通过构造函数创建其它实例。
2.静态实例:在内部提供一个静态实例,该实例是整个程序中该对象的唯一实例。
3.公有化访问方法:提供一个接口供外部访问静态实例,通常为getInstance。
4.删除拷贝构造函数和赋值操作符:为防止外部通过拷贝构造函数和赋值操作符创建新的实例,需要删除或私有化拷贝构造函数和赋值操作符;
单例模式的两种实现形式:
1.懒汉模式:实例只有在需要使用时才被创建。在多线程编程中,为了防止冲突访问,需要用互斥锁保护实例;
2.饿汉模式:实例在加载类时就被创建。