
singleton
ensure a class has only one instance and provide a global point of access
applicability
- only one instance of a class
- instance must be extendable by subclassing
implementation
// .h file class Singleton { public: static Singleton instance(); protected:limit access
Singleton(); private: static Singleton* _instance; }; // .c file Singleton* Singleton::_instance = 0; Singleton* Singleton::instance() { if (_instance == 0) _instance = new Singleton(); return _instance; }
consequences
- coordinate access to a single instance
- reduced namespace
- permit refinement
- permit variable number of instances