CSC/ECE 517 Fall 2010/ch3 3f DF: Difference between revisions
Jump to navigation
Jump to search
Line 70: | Line 70: | ||
[http://ruby-doc.org/stdlib/libdoc/singleton/rdoc/index.html http://ruby-doc.org/stdlib/libdoc/singleton/rdoc/index.html] | [http://ruby-doc.org/stdlib/libdoc/singleton/rdoc/index.html http://ruby-doc.org/stdlib/libdoc/singleton/rdoc/index.html] | ||
[http://en.wikipedia.org/wiki/Singleton_pattern http://en.wikipedia.org/wiki/Singleton_pattern] | [http://en.wikipedia.org/wiki/Singleton_pattern http://en.wikipedia.org/wiki/Singleton_pattern] |
Revision as of 03:47, 5 October 2010
The Singleton pattern in static and dynamic languages
Introduction
Text overview
UML Diagram
Static Language Implementation
C++
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; } } //Begin interface functions //... //End interface functions private: //Direct access to the constructor/destructor is prohibited MySingleton() {} virtual ~MySingleton() {} static MySingleton* s_pSingletonObject; }; MySingleton::s_pSingletonObject = NULL;
Dynamic Language Implementation
Ruby
Implementation
Singleton pattern source code
Usage
class MySingleton include Singleton # Begin interface methods # ... # End interface methods end