写一个高效的模板单例工厂

单例对象咱们已经用的很是多了,可是每一个类都给实现一个单例,在大型项目中使用是否是很麻烦?因此作一个模板单例来经过这个工厂建立单例,在写代码的时候方便不少: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;
}

结合建立一堆全局单例对象的状况,这单例模板特好用!对象

相关文章
相关标签/搜索