I am presenting an idea to create a unique instance of an object using templates.. This is very similar to Singleton design pattern..
The code may be look like this
class UniqueFactory
{
private :
UniqueFactory()
{
}
public :
public :
static T * Instance()
{
static T* ptr = new T();
return ptr;
}
};
So it will give the same instance of the object always.. For example
int *pInst = UniqueFactory<int>::Instance();
*pInst = 11;
pInst = UniqueFactory<int>::Instance();
*pInst , points to the same unique instance.
Another example is ( UserData can be any struct or class etc. )
UserData *pData = UniqueFactory<UserData>::Instance();
Hopes you may like it..!!
2 comments:
KD,I am wondering why you went for a dynamic memory allocation strategystatic T* ptr = new T();static T obj;You can either return by reference or by pointer. So we can reduce the allocation overhead no?(I know it\'s not a big deal)
Sarath , Because If use static object and when i return an object , while returning it creates anothercopy and will create a new object.. So it will loss the uniquenesss. understood ?
Post a Comment