当前位置: 首页 > news >正文

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. 提供一个或多个产品类:共产模式所创建的具体对象实例


http://www.mrgr.cn/news/24614.html

相关文章:

  • 【鸿蒙应用】Grid和GridItem组件
  • [数据集][目标检测]汽车头部尾部检测数据集VOC+YOLO格式5319张3类别
  • 基于java+springboot+vue实现的林业产品推荐系统(文末源码+Lw)135
  • Python3网络爬虫开发实战(14)资讯类页面智能解析
  • 【一文看懂】Fanbox国内怎么支付?Fanbox PayPal付款失败?用下面的虚拟卡支付就可以了
  • 为AppInventor2开发自己的拓展(Extension) - 拓展开发入门篇
  • 免费云服务器申请教程
  • 安卓开发中LiveData的使用
  • openGauss增量备份与恢复技术详解及定时触发实现
  • DroidBot-GPT: GPT-powered UI Automation for Android论文学习
  • Vue组件:依赖注入provide和inject的使用
  • 代码随想录算法训练营day35
  • 架构理论碰撞:对比TOGAF、Zachman、DODAF和FEAF等主流架构框架
  • 龙蟠虎踞的搜索赛道,扛得住这场风云突变吗?
  • 【C++ Primer Plus习题】15.1
  • NoSQL之Redis
  • 文章在线改写如何效率高?智能改写神有妙招!
  • 【线程池】Java 线程池 ThreadPoolExecutor 类源码介绍
  • 深入理解 JavaScript:进阶概念与实战技巧
  • Linux用户和组群账户管理