单例模式也称为单件模式、单子模式。使用单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出等。
单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做到这一点,但这样的代码显得很不优雅。《设计模式》一书中给出了一种很不错的实现,定义一个单例类,使用类的私有静态指针变量指向类的唯一实例,并用一个公有静态方法获取该实例。如下面的类定义:
以下是引用片段: class CSingleton: private: |
单例类CSingleton有以下特征:
它有一个指唯一实例的静态指针m_pInstance,并且是私有的。
它有一个公有的函数,可以获取这个唯一的实例,并在需要的时候创建该实例。