单例模式:通过函数重载提供不同参数的单例实例。工厂模式:通过函数重写创建不同类型的对象,实现创建过程与具体产品类的解耦。
C++ 中函数重载和重写中单例模式与工厂模式的运用
单例模式
函数重载
单例模式可以通过函数重载来实现,重载后的函数具有不同的参数列表,从而返回不同的实例。
class Singleton {
public:
static Singleton* getInstance() {
if (instance_ == nullptr) {
instance_ = new Singleton();
}
return instance_;
}
static Singleton* getInstance(int arg) {
if (instance_ == nullptr) {
instance_ = new Singleton(arg);
}
return instance_;
}
private:
Singleton() = default;
Singleton(int arg);
static Singleton* instance_;
};




