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

设计模式——经典单例

0、核心要素

// 构造、析构函数私有化(一个进程只允许一个对象存在)
// 对象私有化、静态化(因为接口静态函数)
// 对象调用接口静态化(因为静态函数脱离了类对象,可以直接调用)

一、懒汉

唯一的对象在使用时才进行初始化。存在多线程问题。

#include <iostream>using namespace std;class singleMode {public:static singleMode* getInstance() {if (obj==nullptr) {obj = new singleMode();}return obj;}void printMsg() {cout << "print success." << endl;}private:static singleMode* obj;singleMode() {cout << "instance create." << endl;}~singleMode() {cout << "instance release." << endl;}
};singleMode* singleMode::obj = nullptr;
// singleMode* singleMode::obj = new singleMode();int main()
{{singleMode::getInstance()->printMsg();}return 0;
}

二、饿汉

唯一的对象在定义时就完成初始化。

#include <iostream>using namespace std;class singleMode {public:static singleMode* getInstance() {/*   if (obj==nullptr) {obj = new singleMode();}*/return obj;}void printMsg() {cout << "print success." << endl;}private:static singleMode* obj;singleMode() {cout << "instance create." << endl;}~singleMode() {cout << "instance release." << endl;}
};// singleMode* singleMode::obj = nullptr;
singleMode* singleMode::obj = new singleMode();int main()
{{singleMode::getInstance()->printMsg();}return 0;
}

http://www.lryc.cn/news/127994.html

相关文章:

  • 【HarmonyOS】鸿蒙应用获取华为帐号手机号码步骤(API7及以下)
  • webpack相关面试
  • 如何使用ChatGPT创建个性化的健身锻炼计划
  • 人工智能与云计算实训室建设方案
  • 使用 Apache Kafka 和 Go 将数据引入 OpenSearch
  • 2.SpringMvc中Model、ModelMap和ModelAndView使用详解
  • Spark repartition和coalesce的区别
  • 微服务最佳实践,零改造实现 Spring Cloud Apache Dubbo 互通
  • leetcode 力扣刷题 两数/三数/四数之和 哈希表和双指针解题
  • (搜索) 剑指 Offer 12. 矩阵中的路径 ——【Leetcode每日一题】
  • 构建高可用的去中心化微服务集群架构指南
  • Sui主网升级至V1.7.1版本
  • 自然语言处理从入门到应用——LangChain:索引(Indexes)-[基础知识]
  • k8s集群监控方案--node-exporter+prometheus+grafana
  • nginx反向代理流程
  • Java“牵手”根据店铺ID获取淘宝店铺所有商品数据方法,淘宝API实现批量店铺商品数据抓取示例
  • 从0开始yolov8模型目标检测训练
  • 设计模式-抽象工厂模式
  • 如何用Apipost实现sign签名?
  • Hive底层数据存储格式
  • 双向-->带头-->循环链表
  • Opencv4基于C++基础入门笔记:OpenCV环境配置搭建
  • JS基础之实现map方法
  • FPGA应用学习笔记-----复位电路(二)和小结
  • 信捷 XD PLC 16位整数转换为双精度浮点数
  • (二)结构型模式:1、适配器模式(Adapter Pattern)(C++实现示例)
  • 【编程二三事】ES究竟是个啥?
  • 爬虫逆向实战(三)--天某云登录
  • 不要过于迷恋软件架构,要重视如何设计根据简单和清晰的设计
  • Grafana监控 Redis Cluster