单例模式:
懒汉:
cpp
public:
static Instance& getInstance()
{
static instance=new Instance();
return instance;
}
前提:Instance(const Instance&)=delete;
Instance(Instance&&)=delete;
Instance& operator=(const Instance&) = delete;
线程安全的懒汉模式
cpp
线程安全的:
class Instance{
private:
static Instance* instance;
mutex mut;
public:
static Instance* getInstance();
}
Instance *Instance::instance=nullptr;
Instance::mut;
Instance* Instance::getInstance()
{
if(instance==nullptr)
{
lock_guard<mutex>lock(mut);
if(instance==nullptr)
{
instance=new Instance();
}
}
return instance;
}
饿汉模式:
cpp
class Instance{
private:
static Instance instance=new Instance();
mutex mut;
public:
static Instance& getInstance();
}
Instance& Instance::getInstance()
{
return instance;
}
工厂模式:
比较简单但是代码很多,直接放图:
简单工厂:就是创业公司,一个人干多个活
工厂方法:外包,丢给你一个专门的业务
抽象工厂:大厂的核心部门,一个具体工厂干很多核心业务
后面的慢慢补了。。。