The Singleton Pattern
The singleton pattern is used when a single global object must be accessed across a wide number of classed and/or modules. Simply creating a non-local static object works.but there are many problems inherent with that practice,not the least of which is deterning when the object will actually be created, compared with other objects with the same global scope requirements. The singleton pattern solves this problem by forcing access through a class, which stores a static object internally.Here's what a basic implementation might look like:
class singleton1
{
public :
Singleton1& Instance()
{
static Singleton Obj;
return Obj;
}
private:
Singleton1();
};
This simple code solves the problem quite elegantly.However, if you want to derive new classes from this one,you'll be hard pressed to come up with as elegant an extension.By changing the design and requiring more specific intervention during object creation and deletion,though,we can expand on the basic singleton concept and allow extensibility to our original class;