单例模式
单例模式 作用:保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象 应用场景: 1.资源共享的情况下,避免由于资源操作时导致的性能或损耗等。如上述中的日志文件,应用配置。 2.控制资源的情况下,方便资源之间的互相通信。如线程池等。 3.设备管理器,系统中可能有多个设备,但是只有一个设备管理器,用于管理设备驱动; 基础要点: 全局只有一个实例:static 特性,同时禁止用户自己声明并定义实例(把构造函数设为 private) 线程安全 禁止赋值和拷贝 用户通过接口获取实例:使用 static 类成员函数 实现方式: 1.有缺陷的懒汉式: 懒汉式(Lazy-Initialization)的方法是直到使用时才实例化对象,也就说直到调用get_instance() 方法的时候才 new 一个单例的对象。好处是如果被调用就不会占用内存。 class Singleton { private : Singleton ( ) { std :: cout << "constructor called!" << std :: endl ; } Singleton ( Singleton & ) = delete ; Singleton & operator = ( const Singleton & ) = delete ; static Singleton * m