Singleton Pattern in cpp
Singleton Pattern
The Singleton Pattern is one of the design patterns, in order to creat a object in a best way. Because in this design pattern, there is only one class and one object, this class creat its own object and make sure there is only one object can be instantiated. So that we don’t need to construct and deconstruct a object frequently.
- Insure that one class only own one object, and provide a globle access way to this object.
- Avoid construct and deconstruct a globle class frequently.
- When? “When you want to control the number of the instantiations and save the computer resource.”
- Key Code: The construct function is private;
Example Code:
#include<iostream>
//we dont want to have a public constructor
//because if we have a public constructor, it will be allow to initialize
class Random
{
public:
//because this class is a Random class,we dont allow a addtional copy constructor
//therefore we need to delete copy construtor
Random(const Random&) = delete;
//privide a way to access this class staticly
static Random& Get()
{
static Random S_Instance;
return S_Instance;
}
static float Float() { return Get().IFloat(); }
private:
//cant be initialize outside of the class
Random() {}
float IFloat()
{
return R_member;
}
float R_member = 0.5f;
static Random S_Instance;
};
int main()
{
//or like this way
//Random& instance = Random::Get();
//instance.Function();
auto& random = Random::Get();
float number = random.Float();
}