本文转发自技术世界,原文链接 http://www.jasongj.com/design_pattern/singleton/
为何需要单例模式
对于系统中的某些类来说,只有一个实例很重要,例如,一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。
单例模式设计要点
- 保证该类只有一个实例。将该类的构造方法定义为私有方法,这样其他处的代码就无法通过调用该类的构造方法来实例化该类的对象
- 提供一个该实例的访问点。一般由该类自己负责创建实例,并提供一个静态方法作为该实例的访问点
饿汉 vs. 懒汉
- 饿汉 声明实例引用时即实例化
- 懒汉 静态方法第一次被调用前不实例化,也即懒加载。对于创建实例代价大,且不定会使用时,使用懒加载模式可以减少开销