单例模式

Posted 老羔羊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式相关的知识,希望对你有一定的参考价值。

单例模式就是该类只允许有一个类实例,如下示例一,是一个常见的实现方式。

示例一:该实现需要手动去销毁实例(实际使用中,常常忘记调用DestroyInstance()销毁实例)

class Singleton
{
public:
    static Singleton* GetInstance() 
    {
        if (nullptr == m_instance)
        {
            m_instance = new Singleton();
        }
        
        return m_instance;
    }

    static DestroyInstance()
    {
        if (nullptr != m_instance)
        {
            delete m_instance;
            m_instance = nullptr;
        }
    }
private:
    static Singleton* m_instance;
};

Singleton* Singleton::m_instance = nullptr;

 

示例二:

class Singleton
{
public:
    static Singleton* GetInstance() 
    {
        static Singleton instance;       
        return &instance;
    }
};

 

以上是关于单例模式的主要内容,如果未能解决你的问题,请参考以下文章

常用代码片段

性能比较好的单例写法

片段作为 Android 中的单例

单例片段或保存网页视图状态

你熟悉的设计模式都有哪些?写出单例模式的实现代码

单例模式以及静态代码块