Anwendung, z.B.
// Sequence Klasse class Sequence { private: static Sequence * instance; int counter; Sequence() { // private constructor counter = 0; }; public: static Sequence * getInstance() { if(instance==0) { // Lazy instantiation instance = new Sequence(); } return instance; }; int getNext() { return ++counter; }; }; Sequence * Sequence::instance = 0; // initialization
Singleton Pattern ist i.W. Programmier-Trick um Singularität der Instanz zu erreichen:
#include <iostream> using namespace std; int main() { Sequence * sq1 = Sequence::getInstance(); cout << "SQ1 " << sq1->getNext() << endl; cout << "SQ1 " << sq1->getNext() << endl; Sequence * sq2 = Sequence::getInstance(); cout << "SQ2 " << sq2->getNext() << endl; cout << "SQ2 " << sq2->getNext() << endl; cout << "SQ1 " << sq1->getNext() << endl; }