首页 > 其他分享 >1、单例模式

1、单例模式

时间:2024-11-24 14:59:06浏览次数:8  
标签:定义 getInstance Iniconfig 模式 实例 单例 config

模式解释

百度:

这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供了一个全局访问点来访问该实例。

注意:

  • 1、单例类只能有一个实例。
  • 2、单例类必须自己创建自己的唯一实例。
  • 3、单例类必须给所有其他对象提供这一实例。

主要解决的问题:

频繁创建和销毁全局使用的类实例的问题。

可应用的场景:数据库的连接类

注:一个工程项目里,多个函数接口里都会调用同一种类型变量,可以将其改为单例,

即每次出现都是只有他一个,不需要重复定义。

代码用法实例呈现

//------------------------头文件-类定义:

class Iniconfig{
protected:
    Iniconfig();
public:
    static Iniconfig* getInstance();
private:
    static Iniconfig* config;
}

//---------------------------源文件:

Iniconfig* Iniconfig::config = nullptr;
Iniconfig* Iniconfig::getInstance()
{
    if (config == nullptr) {
        config = new Iniconfig();
    }
    return config;
}

步骤:

a、头文件:

1、在其类成员里,定义一个静态指针
2、定义一个获取实例的方法:getInstance();
3、将构造函数设置为 protect 状态,全局唯一,防止多次构造定义

b、源文件:

1、实现 static Iniconfig* getInstance();
2、对静态成员变量定义

标签:定义,getInstance,Iniconfig,模式,实例,单例,config
From: https://blog.csdn.net/the_dry/article/details/143869386

相关文章

  • 攻防世界 web(新手模式)题解
    1.view_source题目描述:X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。根据题目提示直接F12查看源代码,发现答案就在源代码里2.get_post题目描述:X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?根据提示,我们需要用GET方式提......
  • RocketMQ消息者PULL请求模式拉取消息
    引言RocketMQ消费者PULL请求模式拉取消息,是通过消费者端与服务端Broker的多个线程进行配合,做到消息拉取的及时与减少拉取的Broker性能损耗(通过长连接)。消费者处理发起拉取请求的线程PullMessageService服务端Broker处理未拉取到消息的hold线程PullRequestHoldService服......
  • 设计模式问题汇总
    因为很多时候完成技术选型后,走逻辑的时候总发现软件设计中普遍存在(反复出现)的各种因为设计而产生的冗余性问题,就所提出的解决方案而言,总是没有一个很好的汇总,因此今天搬运一些常见的设计模式(虽然有好几种都没用过hhhhh)。设计模式典型应用框架中的应用工厂方法适合在单个产......
  • 设计模式之PIMPL模式
    设计模式之PIMPL模式PIMPL是指pointertoimplementation,又称作“编译防火墙”,是实现“将文件间的编译依存关系降至最低”的方法之一。PIMPL模式是一种减少代码依赖和编译时间的C++编程技巧,其基本思想是将一个外部可见类的实现细节(一般是通过私有的非虚成员)放在一个单独的实现类......
  • 设计模式之 模板方法模式
    模板方法模式是行为型设计模式的一种。它定义了一个算法的骨架,并将某些步骤的实现延迟到子类中。模板方法模式允许子类在不改变算法结构的情况下重新定义算法的某些特定步骤。模板方法模式的核心在于:封装算法的骨架:通过父类中的模板方法定义算法的执行顺序和框架,保证算法结构......
  • Redis如何保证高可靠性?(Redis集群模式)
    高可靠性数据尽量少丢失:AOF和RDB的持久化保证了数据尽量少丢失服务尽量少中断:增加副本冗余量通过如下3种集群模式保证高可靠性主从模式主从节点之间采用的是读写分离的方式,从节点只负责读操作,主节点负责读写操作,由主节点同步给从节点重要概念复制偏移量主从节点,......
  • Sigrity SPEED2000 DDR simulation模式如何生成和解读DDR仿真报告-SODIMM-Write模式
    SigritySPEED2000DDRsimulation模式如何生成和解读DDR仿真报告-SODIMM-Write模式SigritySPEED2000DDRsimulation模式如何进行DDR仿真分析操作指导-SODIMM-Write模式详细介绍了如何进行DDRWrite模式的仿真分析,下面基于此仿真结果进行DDR报告的输出和解读分析在workfl......
  • vue3下el-carousel的card模式下设置item之间的间距
    <el-carouselref="refCarousel"class="wh100Per":autoplay="false":loop="true"type="card"arrow="never"indicator-position="none"@change="priceChange">&......
  • 2024年最新互联网大厂精选 Java 面试真题集锦(JVM、多线程、MQ、MyBatis、MySQL、Redis
    前言春招,秋招,社招,我们Java程序员的面试之路,是挺难的,过了HR,还得被技术面,在去各个厂面试的时候,经常是通宵睡不着觉,头发都脱了一大把,还好最终侥幸能够入职一个独角兽公司,安稳从事喜欢的工作至今...近期也算是抽取出大部分休息的时间,为大家准备了一份通往大厂面试的小捷径,准备......
  • 基于对称点模式(symmetric dot pattern)的多元数据融合-matlab代码
        引言受最近深度学习在计算机视觉和语音识别方面的成功启发,许多研究者提出将一维时间序列数据编码为不同类型的图像,这样可以放大数据中的动态特性,更好地表征原数据。基于对称点模式(symmetricdotpattern)的多元数据融合对称点模式(SymmetrizedDotPattern,SDP)算法可......