美文网首页
C++多例模式下对Instance的使用

C++多例模式下对Instance的使用

作者: 连夜雨倾城 | 来源:发表于2019-07-17 18:58 被阅读0次

        最近工作中遇到这样一个问题:

        之前N年,公司用的都是一块CPU对应一块物理板,也就是,一块物理板只要一个实例化就可以了----俗称单例模式。

        现在突然要一块CPU对应多块物理板,妥妥的多例模式啊。但是之前的架构有事按照单例模式来的!

        其中有一点很让人头疼,兼容性问题。保证之前的代码的可用性(因为同事多个产品用到了这份代码);即:Instance的静态调用。

        这个static你说他好用,她也好用,不好用,也是真的不好用。因为static的缘故,我即使多实例化,但是最后instance还是只有一份,只想最后一个,而且代码中其他处,对这个instance进行的非空 判断。着实让人脑壳疼。

        于是就在网上找啊,找啊。发现这方面的确什么人在讲。其实讲多例模式的都少的可伶,又想到我大学里,老师压根儿连堆中实例化,也没见过,更别说这个了。所以只能自己动手写一个了。

       还好最终给我东拼西凑的,倒是把功能实现了,下面直接看代码吧:   


.h 文件

  #pragma once

#include <stdio.h>

class MyTestFunc

{

public:

int m_chssposs;

static MyTestFunc *chssposs[12];

MyTestFunc(int i)

{

m_chssposs=i;

chssposs[i]=this;

}

~MyTestFunc(void)

{

printf("chssposs[%d]=%u\n",m_chssposs,chssposs[m_chssposs]);

};

static MyTestFunc* Instance(int i=0)

{

return chssposs[i];

};

};


. cpp文件

#include "MyTestFunc.h"

MyTestFunc* MyTestFunc::chssposs[12]={0};

int main()

{

for (int i=0;i<3;i++)

{

MyTestFunc *p=new MyTestFunc(i);

}

for (int i=0;i<5;i++)

{

printf("MyTestFunc::Instance(1)=%u\n",MyTestFunc::Instance(i));

}

}


运行结果:

MyTestFunc::Instance(1)=7162976

MyTestFunc::Instance(1)=7163024

MyTestFunc::Instance(1)=7163072

MyTestFunc::Instance(1)=0

MyTestFunc::Instance(1)=0

请按任意键继续. . .


才工作,能力有限,如有错误的地方,还请指出,不胜感激。

相关文章

  • C++多例模式下对Instance的使用

    最近工作中遇到这样一个问题: 之前N年,公司用的都是一块CPU对应一块物理板,也就是,一块物理板只要一个实...

  • 设计模式[创建型]05--多例模式(Multiton)

    一、简介 多例模式被公认为是 反面模式,为了获得更好的可测试性和可维护性,请使用『依赖注入模式』。 多例模式实际上...

  • 多例模式(Multiton)

    多例模式被公认为是反面模式,为了获得更好的可测试性和可维护性,请使用『依赖注入模式』。 1.4.1. 目的 多例模...

  • 多例模式

    这种情况有没有?有!大点声,有没有? 有!,是,确实有,就出现在明朝,那三国期间的算不算,不算,各自称帝,各有各的...

  • Unsafe方法的实现

    1.在解释器模式下,使用的是C++语言的JNI调用2.在JIT模式下,使用的是intrinsic调用。参考:htt...

  • vue组件的使用模式

    最近使用vue的过程中,发现关于vue组件使用的问题,现根据我自己的理解,总结一下vue组件的使用模式:(1)多例...

  • 设计模式4 - 多例模式【Multition Pattern】

    多例模式 定义:作为对象的创建模式,多例模式中的多例类可以有多个实例,而且多例类必须自己创建、管理自己的实例,并向...

  • 24种设计模式之多例模式(Multition Pattern)

    单例模式和多例模式说明: 1. 单例模式和多例模式属于对象模式。 2. 单例模式的对象在整个系统中只有一份,多例模...

  • 老王讲设计模式(四)——多例模式

    多例模式:在多例模式中,多例类可以有多个实例,而且多例类必须自己创建、管理自己的实例,并向外界提供自己的实例。 早...

  • 单利模式添加互斥锁

    单例模式不适合使用继承实现的原因static id _instance;在整个内存中只有一份,所以会导致一下错误,...

网友评论

      本文标题:C++多例模式下对Instance的使用

      本文链接:https://www.haomeiwen.com/subject/epvclctx.html