单例模式的意图是为了确保一个类有且仅有一个实例,并为它提供一个全局访问点。
单例模式通过隐藏构造函数,提供对象创建的唯一入口点,从而将类的职责集中在类的单个实例中。
Design Patterns一书中把单例模式归类为“创建型”模式,意图是在表明单例对象承担了其他对象所要依赖的职责。
单例模式的优点:
在内存中只有一个对象,节省内存空间。
避免频繁的创建销毁对象,可以提高性能。
避免对共享资源的多重占用。
可以全局访问。
适用场景:由于单例模式的以上优点,所以是编程中用的比较多的一种设计模式。
我总结了一下我所知道的适合使用单例模式的场景:
需要频繁实例化然后销毁的对象。
创建对象时耗时过多或者耗资源过多,但又经常用到的对象。
有状态的工具类对象。
频繁访问数据库或文件的对象。
以及其他我没用过的所有要求只有一个对象的场景。