寫一個高效的模板單例工廠

單例對象咱們已經用的很是多了,可是每一個類都給實現一個單例,在大型項目中使用是否是很麻煩?因此作一個模板單例來經過這個工廠建立單例,在寫代碼的時候方便不少:c++

template<typename T>
class Singleton
{
public:
    static T* instance(){
        static T instance;
        return &instance;
    }

private:
    Singleton();
    ~Singleton();
    Singleton(const Singleton &);
    Singleton & operator = (const Singleton &);
};

當咱們就要建立任何一個新的單例對象的時候,只須要調用Singleton<calss>::instance就好了:例如已經有一個類A,下面代碼介紹怎麼建立A的單例對象。code

class A{
    public:
    void foo(){//DO FOO}
}

int main(){
    A *a = Singleton<A>::instance();
    a->foo();
    return 0;
}

結合建立一堆全局單例對象的狀況,這單例模板特好用!對象

相關文章
相關標籤/搜索