单例

游戏中涉及到的设计模式种类比较少,但是单例这种模式随处可见,单例模式的类使用起来很方便。因为单例使用的比较多,所以如果每次使用单例时,都重新设计一下类结构让该类成为单例模式显得有点冗余,抽象出来一个单例模板父类就比较快捷了,如果要使某个类成为单例模式,只需要继承该模板类就可以了。一种单例模板如下:

template

class Singleton

{

    protected:

        static T* _instance;

        Singleton() {}

        virtual ~Singleton(){_instance = NULL;}

 

    public:

        static T& get_instance()

        {

            if (_instance == NULL) {

                _instance = new Singleton();

            }

            return *_instance;

        }

}

template

T* Singleton::_instance = NULL;

 

假如要设计一个单例类Test, 则只需要使用以下代码即可:

class Test : public Singleton

{

    ...

}

然后使用Test::get_instance().×××,即可调用该单例中的对象。

你可能感兴趣的:(游戏开发)