我有一个使用单例软件设计模式的状态引擎。状态引擎可以被多个线程访问。该对象是在程序启动时从主线程初始化的,不是为延迟初始化而设计的。
我的问题是,我是否应该像这样使公共静态成员变得易变:
class CStateEngine final
{
private:
/* Contains the Singleton object */
static CStateEngine* instance;
protected:
CStateEngine();
public:
static CStateEngine* Instance() volatile; // Returns the Singleton instance
static void DeleteInstance() volatile; // Deletes the Singleton instance
}