CSC/ECE 517 Fall 2010/ch3 3f DF: Difference between revisions
Jump to navigation
Jump to search
Line 30: | Line 30: | ||
} | } | ||
} | } | ||
//Desired interface options.... | |||
private: | private: | ||
//Direct access to the constructor/destructor is prohibited | |||
MySingleton() {} | |||
virtual ~MySingleton() {} | |||
static MySingleton* s_pSingletonObject; | |||
}; | }; | ||
</pre> | </pre> |
Revision as of 05:42, 4 October 2010
The Singleton pattern in static and dynamic languages
Introduction
Text overview
UML Diagram
Static Language Implementation
class MySingleton { public: static MySingleton* Instance() { if(s_pSingletonObject == NULL) s_pSingletonObject = new MySingleton; return s_pSingletonObject; } static void Destroy() { if(s_pSingletonObject != NULL) { delete s_pSingletonObject; s_pSingletonObject = NULL; } } //Desired interface options.... private: //Direct access to the constructor/destructor is prohibited MySingleton() {} virtual ~MySingleton() {} static MySingleton* s_pSingletonObject; };
Dynamic Language Implementation
Ruby Sample code here