C++常用设计模式

一、单例模式

1.1 含义

        单例模式适用于生成唯一对象、需要频繁创建和销毁的环境。

需求: 1. 构造函数、operator=、拷贝构造函数 私有化

             2. 构造一个静态指针

             3. 构造一个静态函数创建实例

1.2 懒汉模式

 懒汉:在第一个调用函数是才申请空间,但容易产生线程安全问题。

class SingleTon  {
private :
	SingleTon() {}
    SingleTon(const SingleTon& s) = delete;
    SingleTon& operator=(const SingleTon& s) = delete;
public :
	static SingleTon* singleTon;
	static SingleTon* getInstance() {
		if (singleTon == nullptr) {
			singleTon = new SingleTon;
		}

		return singleTon;
	}
};
SingleTon* SingleTon::singleTon = nullptr;

int main(int argc, char* argv[]) {

	SingleTon* ss = SingleTon::getInstance();

	return 0;
}

1.3 饿汉模式

 饿汉:直接在类外创建对象。程序已启动就申请了空间,线程安全,但占用资源。

class SingleTon  {
private :
	SingleTon() {}
    SingleTon(const SingleTon& s) = delete;
    SingleTon& operator=(const SingleTon& s) = delete;
public :
	static SingleTon* singleTon;
	static SingleTon* getInstance() {
		return singleTon;
	}
};
SingleTon* SingleTon::singleTon = nullptr;

int main(int argc, char* argv[]) {

	SingleTon* ss = new SingleTon;

	return 0;
}

 二、工厂模式

2.1 需求:

        1. 创建一个抽象工厂类:所有具体工厂类的父类

        2. 创建与产品对应的工厂类:负责实例化产品对象

        3. 提供一个抽象产品类:所有产品的父类

        4. 提供一个或多个产品类:共产模式所创建的具体对象实例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值