当前位置: 首页 > 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;
}

相关文章:

设计模式——经典单例

0、核心要素 // 构造、析构函数私有化&#xff08;一个进程只允许一个对象存在&#xff09; // 对象私有化、静态化&#xff08;因为接口静态函数&#xff09; // 对象调用接口静态化&#xff08;因为静态函数脱离了类对象&#xff0c;可以直接调用&#xff09; 一、懒汉 唯…...

【HarmonyOS】鸿蒙应用获取华为帐号手机号码步骤(API7及以下)

【写在前面】 本文主要介绍使用API7及以下版本开发HarmonyOS应用时&#xff0c;通过华为帐号SDK和云侧接口获取手机号码的主要开发步骤&#xff0c;注意&#xff1a;开发过程中集成的华为帐号SDK仅支持API7及以下版本的HarmonyOS应用。 【前提准备】 1、HarmonyOS应用已申请获…...

webpack相关面试

运行 npm run xxx 的时候发生了什么&#xff1f; npm run xxx的时候&#xff0c;首先会去项目的package.json文件里找scripts 里找对应的xxx&#xff0c;然后执行 xxx的命令 npm i 的时候&#xff0c;npm 读到该配置后&#xff0c;就将该文件软链接到 ./node_modules/.bin 目录…...

如何使用ChatGPT创建个性化的健身锻炼计划

ChatGPT广泛应用于各个行业&#xff0c;健身也不例外。 ChatGPT 在健身领域的一个常用案例是创建个性化的锻炼计划。 在要求 ChatGPT 创建锻炼计划时&#xff0c;简单地输入自己的目标和当前的健身水平是一个很好的开始。完成此操作后&#xff0c;你还可以使用其他提示和措施来…...

人工智能与云计算实训室建设方案

一、 人工智能与云计算系统概述 人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;是一种模拟人类智能的科学和工程&#xff0c;通过使用计算机系统来模拟、扩展和增强人类的智能能力。人工智能涉及多个领域&#xff0c;包括机器学习、深度学习、自然…...

使用 Apache Kafka 和 Go 将数据引入 OpenSearch

需要编写自定义集成层来满足数据管道中的特定要求&#xff1f;了解如何使用 Go 通过 Kafka 和 OpenSearch 实现此目的。 可扩展的数据摄取是OpenSearch等大规模分布式搜索和分析引擎的一个关键方面。构建实时数据摄取管道的方法之一是使用Apache Kafka。它是一个开源事件流平台…...

2.SpringMvc中Model、ModelMap和ModelAndView使用详解

1.前言 最近SSM框架开发web项目&#xff0c;用得比较火热。spring-MVC肯定用过&#xff0c;在请求处理方法可出现和返回的参数类型中&#xff0c;最重要就是Model和ModelAndView了&#xff0c;对于MVC框架&#xff0c;控制器Controller执行业务逻辑&#xff0c;用于产生模型数据…...

Spark repartition和coalesce的区别

repartition只是coalesce接口中shuffle为true的实现。不经过 shuffle&#xff0c;也就是coaleasce shuffle为false&#xff0c;是无法增加RDD的分区数的&#xff0c;比如你源RDD 100个分区&#xff0c;想要变成200个分区&#xff0c;只能使用repartition&#xff0c;也就是coal…...

微服务最佳实践,零改造实现 Spring Cloud Apache Dubbo 互通

作者&#xff1a;孙彩荣 很遗憾&#xff0c;这不是一篇关于中间件理论或原理讲解的文章&#xff0c;没有高深晦涩的工作原理分析&#xff0c;文后也没有令人惊叹的工程数字统计。本文以实际项目和代码为示例&#xff0c;一步一步演示如何以最低成本实现 Apache Dubbo 体系与 S…...

leetcode 力扣刷题 两数/三数/四数之和 哈希表和双指针解题

两数/三数/四数之和 题目合集 哈希表求解1. 两数之和454. 四数相加Ⅱ 双指针求解15.三数之和18. 四数之和 这个博客是关于&#xff1a;找出数组中几个元素&#xff0c;使其之和等于题意给出的target 这一类题目的&#xff0c;但是各个题之间又有些差异&#xff0c;使得需要用不…...

(搜索) 剑指 Offer 12. 矩阵中的路径 ——【Leetcode每日一题】

❓剑指 Offer 12. 矩阵中的路径 难度&#xff1a;中等 给定一个 m * n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构…...

构建高可用的去中心化微服务集群架构指南

随着云计算、大数据和物联网的快速发展&#xff0c;企业对于可扩展的、高性能的微服务架构的需求也日益增长。传统的集中式架构已经不能满足这些需求&#xff0c;因此出现了去中心化的微服务集群架构。本文将介绍如何构建高可用的去中心化微服务集群架构&#xff0c;以满足企业…...

Sui主网升级至V1.7.1版本

Sui主网现已升级至V1.7.1版本&#xff0c;此升级包含了多项修复和优化。升级要点如下所示&#xff1a; #12915 协议版本提升至20版本。 在Sui框架中新增Kiosk Extensions API和一个新的sui::kiosk_extension模块。 您可以使用该API构建自定义的Kiosk应用程序&#xff0c;以…...

自然语言处理从入门到应用——LangChain:索引(Indexes)-[基础知识]

分类目录&#xff1a;《自然语言处理从入门到应用》总目录 索引&#xff08;Indexes&#xff09;是指为了使LLM与文档更好地进行交互而对其进行结构化的方式。在链中&#xff0c;索引最常用于“检索”步骤中&#xff0c;该步骤指的是根据用户的查询返回最相关的文档&#xff1a…...

k8s集群监控方案--node-exporter+prometheus+grafana

目录 前置条件 一、下载yaml文件 二、部署yaml各个组件 2.1 node-exporter.yaml 2.2 Prometheus 2.3 grafana 2.4访问测试 三、grafana初始化 3.1加载数据源 3.2导入模板 四、helm方式部署 前置条件 安装好k8s集群&#xff08;几个节点都可以&#xff0c;本人为了方便实验k8s集…...

nginx反向代理流程

一、nginx反向代理流程 反向代理&#xff1a;使用代理服务器来接受internet上的连接请求&#xff0c;然后将请求转发给内部网络中的上游服务器&#xff0c;并将上游服务器得到的结果返回给请求连接的客户端&#xff0c;代理服务器对外表现就是一个web服务器。Nginx就经常拿来做…...

Java“牵手”根据店铺ID获取淘宝店铺所有商品数据方法,淘宝API实现批量店铺商品数据抓取示例

淘宝天猫商城是一个网上购物平台&#xff0c;售卖各类商品&#xff0c;包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取淘宝整店所有商品详情页面评价内容数据&#xff0c;您可以通过开放平台的接口或者直接访问淘宝商城的网页来获取店铺所有商品详情信息内的评论数据…...

从0开始yolov8模型目标检测训练

从0开始yolov8模型目标检测训练 1 大环境 首先有大环境&#xff0c;即已经准备好了python、nvidia驱动、cuda、cudnn等。 2 yolov8的虚拟环境 2.1 创建虚拟环境 conda create -n yolov8 python3.102.2 激活虚拟环境 注意&#xff1a;激活虚拟环境的时候&#xff0c;需要清…...

设计模式-抽象工厂模式

抽象工厂模式&#xff1a;该模式是对工厂模式的拓展&#xff0c;因为工厂模式中创建的产品都需要继承自同一个父类或接口&#xff0c;创建的产品类型相同&#xff0c;无法创建其他类型产品&#xff0c;所以抽象工厂模式对其进行拓展&#xff0c;使其可以创建其他类型的产品。 …...

如何用Apipost实现sign签名?

我们平常对外的接口都会用到sign签名&#xff0c;对不同的用户提供不同的apikey ,这样可以提高接口请求的安全性&#xff0c;避免被人抓包后乱请求。 如何用Apipost实现sign签名&#xff1f; 可以在Apipost中通过预执行脚本调用内置的JS库去实现预执行脚本是在发送请求之前自…...

三步解决Windows 11卡顿难题:开源工具Win11Debloat让系统效率提升3倍

三步解决Windows 11卡顿难题&#xff1a;开源工具Win11Debloat让系统效率提升3倍 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to de…...

别再瞎调优先级了!STM32CubeMX配置FreeRTOS任务调度器的5个实战避坑点

别再瞎调优先级了&#xff01;STM32CubeMX配置FreeRTOS任务调度器的5个实战避坑点 刚接触FreeRTOS的嵌入式开发者&#xff0c;往往会在STM32CubeMX的图形化配置界面里迷失方向。那些看似简单的下拉菜单和复选框&#xff0c;背后却藏着让系统崩溃的陷阱。我曾见过一个工程师将任…...

Arduino-IRremote代码调试技巧:10个高效解决开发难题的方法

Arduino-IRremote代码调试技巧&#xff1a;10个高效解决开发难题的方法 【免费下载链接】Arduino-IRremote Infrared remote library for Arduino: send and receive infrared signals with multiple protocols 项目地址: https://gitcode.com/gh_mirrors/ar/Arduino-IRremot…...

阿里内部强推性能优化全栈小册,Java程序员必备!

性能优化可以说是我们程序员的必修课&#xff0c;如果你想要跳出CRUD的苦海&#xff0c;成为一个更“高级”的程序员的话&#xff0c;性能优化这一关你是无论无何都要去面对的。为了提升系统性能&#xff0c;开发人员可以从系统的各个角度和层次对系统进行优化。除了最常见的代…...

Zotero Citation插件进阶使用指南:从安装到定制的全流程解决方案

Zotero Citation插件进阶使用指南&#xff1a;从安装到定制的全流程解决方案 【免费下载链接】zotero-citation Make Zoteros citation in Word easier and clearer. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-citation [痛点分析]&#xff1a;文献管理中的隐…...

4象限解析OpenRocket:开源火箭仿真工具的技术突破与实践指南

4象限解析OpenRocket&#xff1a;开源火箭仿真工具的技术突破与实践指南 【免费下载链接】openrocket Model-rocketry aerodynamics and trajectory simulation software 项目地址: https://gitcode.com/GitHub_Trending/op/openrocket 在模型火箭设计领域&#xff0c;物…...

C语言结构体定义与自增运算符a++详解

有一个结构体名是stu&#xff0c;它当中包含着5个成员&#xff0c;其中一个成员是name&#xff0c;还有一个成员是num&#xff0c;另外一个成员是age&#xff0c;再有一个成员是group&#xff0c;最后一个成员是score。 除了不能初始化这一点外&#xff0c;结构体成员的定义方式…...

基于ABB RobotStudio的工业机器人课程学习(第一周)

本周内容——成功安装并试用ABB RobotSyudioABB RobotStudio 6.08 安装教程 ABB RobotStudio作为工业机器人离线编程与仿真的核心工具&#xff0c;是开展工业机器人工作站设计、轨迹仿真的重要平台&#xff0c;其中6.08版本兼具稳定性与实用性&#xff0c;适配工业机器人仿真教…...

PFC(5.0)模拟:GBM模型(grain- based model ) pb-sj或pb-...

PFC(5.0)模拟:GBM模型&#xff08;grain- based model &#xff09; pb-sj或pb-pb 单轴压缩。 模拟花岗岩等矿物晶体岩石&#xff0c;多种矿物晶体模型&#xff0c;其中矿物种类 数量分布可以自定义。 可以监测sj裂纹&#xff0c;和各矿物内裂纹。PFC5.0的GBM模型玩岩石破裂是真…...

ComfyUI-FramePackWrapper功能选择指南:如何根据资源控制与使用便捷性选择最优方案

ComfyUI-FramePackWrapper功能选择指南&#xff1a;如何根据资源控制与使用便捷性选择最优方案 【免费下载链接】ComfyUI-FramePackWrapper 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-FramePackWrapper ComfyUI-FramePackWrapper作为一款高效的AI视频生成插…...