美文网首页
最常用的设计模式----单实例模式(C++ 实现)

最常用的设计模式----单实例模式(C++ 实现)

作者: 架构师Javaspring | 来源:发表于2019-06-20 11:21 被阅读0次

 单实例模式,本人认为最简单的设计模式之一,当然说的简单是针对一般情况,是不考虑线程安全等一系列其他问题。单实例模式也是最最最最常用的模式。我在没有学设计模式之前,都用到了这个模式,只是自己不知道罢了。它保证一个类之类实例化一次,并提供一个访问它的全局控制点。

        比如你的应用程序有一个applicaiotn类,然后有一个个app 对象,显然每个应用只应该有一个这样的对象。 但是你又怕其他开发者一不小心实例化了这个对象。那么比需要单实例模式。

         下面是单实例的结构图:

           要做到单实例只需要简单的做到三点点即可:

              A. 将你的将你的构造函数设为private的,这样就没人能创建这个类.

              B.创建一个全局唯一实例

              C.提供一个接口来获得这个实例。

 代码:

#include <iostream>

using namespace std;

class Application

{

public:

~Application(){};

static Application* getApp(){//其实就是上面提到的getInstance()函数

      if(!m_instance) {

  m_instance = new Application();

  }

  return m_instance;

}

private:

Application():m_instance(NULL){};

static Application* m_instance;

};

Application* Application::m_instance = NULL;//初始化静态变量

void main()

{

Application* app = Application::getApp();

//app.doSomeThing()...

//Application newApp; //error 无法实例化

system("pause");

}

简单吧,但是可惜这个类不是线程安全的,如果要线程安全,需要自己加锁。这点我们后面再实现。所以在需要使用全局配置、唯一资源的时候。防止再次实例化的时候,这时请采用单实例模式。欧拉~~~~

最后送福利了,加群即可获取 群号:798891710 即可获取Java工程化、高性能及分布式、高性能、高架构、性能调优、Spring、MyBatis、Netty源码分析等多个知识点高级进阶干货的相关视频资料,等你来拿

相关文章

  • 设计模式之--单例模式

    单例模式是设计模式中最常用的设计模式,其实现也相对简单.单例模式指的是设计一个类,这个类的实例对象只允许存在一个....

  • Swift 单例

    单例: 单例是一种设计模式,算是最简单的一种设计模式,也是最常用到的设计技巧。应用这个模式的类必须保证只有一个实例...

  • 设计模式

    常用的设计模式:单例模式,工厂模式,观察者模式,代理模式,其他的我使用不多。单例模式最常见也最简单分为几种实现:懒...

  • 最常用的设计模式----单实例模式(C++ 实现)

    单实例模式,本人认为最简单的设计模式之一,当然说的简单是针对一般情况,是不考虑线程安全等一系列其他问题。单实例模式...

  • 彻底明白Android设计模式—单例模式

    这次讲讲最简单也最常用的单例模式(顾名思义 保证实例唯一的一种设计模式) 直接五种单例模式献上,让你了解单例模式的...

  • 单例模式详细使用说明

    单例模式 Java单例模式可能是最简单也是最常用的设计模式,单例模式保证一个类仅有一个实例,并提供一个访问它的全局...

  • iOS中的单例设计模式

    什么是单例模式? 单例模式是一种常用的软件设计模式。可以保证通过单例模式可以保证系统中一个类只有一个实例而且该实例...

  • 单例模式的常用实现方式

    单例模式属于最常用的设计模式,Java中有很多实现单例模式的方式,各有其优缺点 实现方式对比 单例实现方式线程安全...

  • 设计模式01--单例模式(创建型模式)

    设计模式--单例模式 概念: 目的: 基本模式有23种。 单例模式: 保证整个应用中某个实例有且只有一个。常用的有...

  • Singleton 单例模式

    搬运自大神博客单例模式(Singleton)及其C++实现 单例模式,在GOF的《设计模式:可复用面向对象软件的基...

网友评论

      本文标题:最常用的设计模式----单实例模式(C++ 实现)

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