由于使用场景的不同,单例模式的写法也有所区别。

目前接触到的,大多数都是多线程,大量数据处理,还要考虑灵活性,对原有类结构改动最小等因素,所以写法更是多种多样。

QT个人较常用的一种写法:(两个文件:分为.h文件和.cpp文件)

 1 class LocalBusiness : public QObject
2 {
3 Q_OBJECT
4
5 private:
6 QString _myName;
7 explicit LocalBusiness(QObject *parent = nullptr);
8 static LocalBusiness* _instance;
9 public:
10 static LocalBusiness* Instance()
11 {
12 static QMutex mutex;
13 if (!_instance) {
14 QMutexLocker locker(&mutex);
15 if (!_instance) {
16 _instance = new LocalBusiness;
17 }
18 }
19 return _instance;
20 }
21 public:
22 void SayHello();
23
24 };
 1 LocalBusiness* LocalBusiness::_instance = nullptr;
2
3 LocalBusiness::LocalBusiness(QObject *parent) : QObject(parent)
4 {
5 _myName="LocalBusiness";
6 }
7
8 void LocalBusiness::SayHello()
9 {
10 qDebug() << "hello,"+_myName;
11 }

具体调用

1     LocalBusiness::Instance()->SayHello();

C#个人较常用的写法:(一个文件:.cs文件)

 1     public class LocalBusiness
2 {
3 private readonly string _myName = string.Empty;
4 private static LocalBusiness _instance = null;
5 private static readonly object _locker = new object();
6
7 private LocalBusiness()
8 {
9 _myName = "LocalBusiness";
10 }
11
12 public static LocalBusiness Instance
13 {
14 get
15 {
16 if (_instance == null)
17 {
18 lock (_locker)
19 {
20 if (_instance == null)
21 {
22 _instance = new LocalBusiness();
23 }
24 }
25 }
26 return _instance;
27 }
28 }
29
30 public void SayHello()
31 {
32 Console.WriteLine("hello,"+ _myName);
33 }
34 }

具体调用

1             LocalBusiness.Instance.SayHello();

如果有帮助,欢迎素质三连~

QT与DoNet中单例模式的简单实现的更多相关文章

  1. 报表控件NCReport教程:集成NCReport到Qt应用程序中

    NCReport是一款轻量级.快速.多平台.简单易用的基于Qt toolkit的C++编写的报表解决方案,目前主要包括报表渲染库和报表设计器GUI应用程序. 但是好多使用NCReport控件的朋友都不 ...

  2. QT国际化(中英转换)

    转载:https://blog.csdn.net/u012528526/article/details/54707233 QT国际化(中英转换) 我们都知道在安卓中,想做国际化很简单,只需要建立对应的 ...

  3. 深入Qt 学习 -- 反射机制(比较简单清楚)

    相对于Java天生的这一特性, C++并不具备;但进入到Qt领域,这一切都变得简单自如了. 从Qt的元对象系统可知,除了提供信号/槽机制的特性之外,它还提供了以下特性: ■ QObject::meta ...

  4. Qt在pro中实现条件编译

    https://www.cnblogs.com/Braveliu/p/5107550.html https://blog.csdn.net/simonforfuture/article/details ...

  5. 设计模式之单例模式的简单demo

    /* * 设计模式之单例模式的简单demo */ class Single { /* * 创建一个本类对象. * 和get/set方法思想一样,类不能直接调用对象 * 所以用private限制权限 * ...

  6. asp.net mvc 中 一种简单的 URL 重写

    asp.net mvc 中 一种简单的 URL 重写 Intro 在项目中想增加一个公告的功能,但是又不想直接用默认带的那种路由,感觉好low逼,想弄成那种伪静态化的路由 (别问我为什么不直接静态化, ...

  7. Linux中vim的简单配置

    本文主要分享Linux中vim的简单配置 ★配置文件的位置     在目录/etc.下面,有个名为vimrc的文件,这就是系统中公共的vim配置文件,对所有用户都开放.而在每个用户的主目录下,都可以自 ...

  8. demo工程的清单文件及activity中api代码简单示例

    第一步注册一个账户,并创建一个应用.获取app ID与 app Key. 第二步下载sdk 第三步新建工程,修改清单文件,导入相关的sdk文件及调用相应的api搞定. 3.1 修改清单文件,主要是加入 ...

  9. iOS开发UI篇—iOS开发中三种简单的动画设置

    iOS开发UI篇—iOS开发中三种简单的动画设置 [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要“参与到”动画中 [UIView b ...

随机推荐

  1. 利用java反射机制实现List>转化为List

    BEGIN; 最近在用hibernate做项目,由于后续的业务功能比较多,然后框架原设计没有使用到一对多.一对一等特性,(艹TA妹)没办法,只能用原生sql语句获得需要的结果集.但是返回过来的是一个L ...

  2. redis 添加hash报错

    报错信息 127.0.0.1:6379> hset ii name ss (error) MISCONF Redis is configured to save RDB snapshots, b ...

  3. SpringBoot项目刚刚创建就报异常,Failed to configure a DataSource: 'url' attribute is not specified and no embedded 的解决办法

    错误信息: Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedde ...

  4. 使用 Python 来自动回微信

    准备 Python3 Python Itchat库(可以通过pip install itchat来安装) (可选)Python Pymongo库(可以通过pip install pymongo来安装) ...

  5. 2003031121——浦娟——Python数据分析第七周作业——MySQL的安装及使用

    项目 要求 课程班级博客链接 20级数据班(本) 作业要求链接 Python第七周作业 博客名称 2003031121--浦娟--Python数据分析第七周作业--MySQL的安装及使用 要求 每道题 ...

  6. 浅谈 UNIX、Linux、ios、android 他们之间的关系

    开源Linux 一个执着于技术的公众号 Unix, 简化形成了Linux,Linux则是Android的内核,而苹果则是使用unix系统作为ios和macos的内核. 几个系统出现的时间 UNIX系统 ...

  7. 动手实操丨RC522射频卡模块与IC卡完成充值消费查询的技术实现思路

    摘要:一文手把手教你利用RC522射频卡模块与IC卡完成充值消费查询的技术实现思路. 本文分享自华为云社区<​​​​​​​​​​​​​​RC522射频卡模块与IC卡完成充值消费查询的技术实现思路 ...

  8. go ants源码分析

    golang ants 源码分析 结构图 poolwithfunc与pool相差不大,这里我们只分析ants默认pool的流程 文件 作用 ants.go 定义常量.errors显示.默认建一个大小为 ...

  9. 使用 HDFS 协议访问对象存储服务

    背景介绍 原生对象存储服务的索引是扁平化的组织形式,在传统文件语义下的 List 和 Rename 操作性能表现上存在短板.腾讯云对象存储服务 COS 通过元数据加速功能,为上层计算业务提供了等效于 ...

  10. Focal and Global Knowledge Distillation for Detectors

    一. 概述 论文地址:链接 代码地址:链接 论文简介: 此篇论文是在CGNet上增加部分限制loss而来 核心部分是将gt框变为mask进行蒸馏 注释:仅为阅读论文和代码,未进行试验,如有漏错请不吝指 ...