设计模式整理

  1. 设计模式
  2. 观察者模式

设计模式

  • 单例模式
// 懒汉式单例模式
class Singleton
{
private:
    Singleton() { }
    static Singleton * pInstance;
public:
    static Singleton * GetInstance()
    {
        if (pInstance == nullptr)
            pInstance = new Singleton();
        return pInstance;
    }
};

// 线程安全的单例模式
class Singleton
{
private:
    Singleton() { }
    ~Singleton() { }
    Singleton(const Singleton &);
    Singleton & operator = (const Singleton &);
public:
    static Singleton & GetInstance()
    {
        // 编译是使用了C++11的特性,在C++11内部静态变量的方式里是线程安全的,只创建了一次实例
        static Singleton instance; //对对象使用static会调用默认构造函数
        return instance;
    }
};

观察者模式