首页 > 其他分享 >单例模式思路

单例模式思路

时间:2024-06-14 10:57:13浏览次数:13  
标签:模式 Stu static 单例 思路 include 构造函数

文章目录


前言

        单例模式是一种常用的设计模式,用于确保一个类只有一个实例,并提供全局访问点。


一、单例模式是什么?

        单例模式是一种设计模式,用于确保一个类只有一个实例对象,并提供一个全局访问点。

二、代码创建步骤

1.写一个简单的单例模式类

代码如下(示例):

//单例子模式
class Stu
{
    private:
        Stu(){}    //默认构造函数
        Stu(const Stu &p){}  //有参构造函数
        static Stu *p;

    public:
        static Stu *singleton()
        {
            return p;
        }
};
Stu *Stu::p = new Stu; //初始化static 的成员变量;

2.整体代码

代码如下(示例):

#include <iostream>   //标准的输入输出流
#include<string.h>    
#include<stdlib.h>
#include<cmath>
#include<time.h>
#include<string>
using namespace std;      

//单例子模式
class Stu
{
    private:
        Stu(){}    //默认构造函数
        Stu(const Stu &p){}  //有参构造函数
        static Stu *p;

    public:
        static Stu *singleton()
        {
            return p;
        }
};

Stu *Stu::p = new Stu; //初始化static 的成员变量;

int main(void)
{
    Stu *p1 = Stu::singleton();   //相当于Stu *p1 = p = new Stu
    Stu *p2 = Stu::singleton();
    if(p1 == p2)
    {
        cout << "相等,没问题" << endl;
    }
    else{
        cout << "不相等,有问题" << endl;
    }
    return 0;
}


总结

        单例模式相当于巧妙的利用了static修饰的成员变量需要在全局声明,然后在类中在通过static函数返回static的对象,在main调用的时候直接声明对象接收静态函数的返回值,可以达到a = b = c的效果。

标签:模式,Stu,static,单例,思路,include,构造函数
From: https://blog.csdn.net/weixin_47378530/article/details/139675139

相关文章

  • 设计模式:一个应用理解模板方法模式
    一个需求在实际生产开发中,数据库初始化、升级是没办法规避的,一般常见的方案是外挂一套初始化脚本加一堆SQL文件,其实可以把这个过程做到系统里,做到一个程序包内自带数据库的初始化,或者数据库升级,所以需求就是做一个数据库的初始化、升级的java功能,使用过flyway的同学应该能更明......
  • 二十四中涉及模式简介
    设计模式(DesignPatterns)是软件设计中被反复使用的、经过验证的、能解决特定问题的代码结构或解决方案。它们是开发人员为了解决特定类型的设计问题而总结出的最佳实践。设计模式可以帮助开发人员以更高效、更优雅的方式构建软件系统,提高代码的可维护性、可重用性和可扩展性。......
  • 牛客周赛46(思路待补)
    比赛链接:牛客周赛46赛时感受    本场参加的是内测,多亏了内测群的佬提供的思路,得以AK。    ABC都是简单的签到题,D稍微需要分类一下,EF有点算法知识,E可以使用前缀和+二分搜索过掉,但是听说好像还能使用离散化树状数组等等,F是数学知识,隔板法和求质数、求组合。 ......
  • EtherCAT主站SOEM -- 41 -- win-vs-soem-win10及win11系统VisualStudio-SOEM-控制电机
    EtherCAT主站SOEM--41--win-vs-soem-win10及win11系统VisualStudio-SOEM-控制电机走位置模式(PP模式)0QT-SOEM及STM32F767-SOEM视频欣赏及源代码链接:0.1Linux--Ubuntu系统之QT-SOEM博客、视频欣赏及源代码链接0.2STM32F767-SOEM博客、视频欣赏及源代码链接0......
  • 【Java中常用的设计模式总结】
    文章目录概要1、单例模式(SingletonPattern)2、工厂模式(FactoryPattern)3、建造者模式(BuilderPattern)4、原型模式(PrototypePattern)5、适配器模式(AdapterPattern)6、桥接模式(BridgePattern)7、组合模式(CompositePattern)8、装饰器模式(DecoratorPattern)9、外观模式(Facade......
  • Android 11 自由窗口模式启动app
    //未定义publicstaticfinalintWINDOWING_MODE_UNDEFINED=0;//普通全屏窗口publicstaticfinalintWINDOWING_MODE_FULLSCREEN=1;//画中画publicstaticfinalintWINDOWING_MODE_PINNED=2;//分屏主窗口publicstaticfinali......
  • 设计模式-桥接模式
    桥接模式桥接模式(bridge)也成为桥梁模式,接口(Interface)模式,柄体(HandleAndBody)模式,是将抽象部分与它的具体实现部分分离,使得它们可以独立的变化,属于结构型模式。桥接模式主要是通过组合的方式建立两个类之间的关系,而不是继承。但又类似于多重继承方案,但是多重继承方案往往违......
  • 设计模式之策略模式
    设计模式中的策略模式及其应用一、策略模式概述策略模式是一种行为型设计模式,它定义了一系列的算法,并将每一个算法封装起来,使它们可以互相替换。策略模式使得算法可以独立于使用它的客户端变化。简而言之,策略模式允许在运行时根据需要选择不同的算法行为。二、策略模式的结......
  • 在 Wed 中应用 MyBatis(同时使用MVC架构模式,以及ThreadLocal 事务控制)
    1.在Wed中应用MyBatis(同时使用MVC架构模式,以及ThreadLocal事务控制)@目录1.在Wed中应用MyBatis(同时使用MVC架构模式,以及ThreadLocal事务控制)2.实现步骤:1.第一步:环境搭建2.第二步:前端页面index.html3.第三步:创建pojo包、service包、dao包、web包、utils包,exceptions......
  • 【文档智能 & RAG】RAG增强之路:增强PDF解析并结构化技术路线方案及思路
    前言现阶段,尽管大模型在生成式问答上取得了很大的成功,但由于大部分的数据都是私有数据,大模型的训练及微调成本非常高,RAG的方式逐渐成为落地应用的一种重要的选择方式。然而,如何准确的对文档进行划分chunks,成为一种挑战,在现实中,大部分的专业文档都是以PDF格式存储,低精度的......