`
shaojiashuai123456
  • 浏览: 262104 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

单例模式模版类

 
阅读更多

 

 

#ifndef _COMMON_SINGLETON_H_

#define _COMMON_SINGLETON_H_

    

template<typename T>

class Singleton

{

public:

    template<typename... Args>

    static T* Instance(Args&& ...args)

    {

        if (m_pInstance == nullptr)

        {

            m_pInstance = new T(std::forward<Args>(args)...);

        }

        return m_pInstance;

    }

    

    static T* GetInstance()

    {

        return m_pInstance;

    }

 

    static void DestroyInstance()

    {

        if (m_pInstance != nullptr)

        {

            delete m_pInstance;

            m_pInstance = nullptr;

        }

    }

 

private:

    Singleton(void);

    virtual ~Singleton(void);

    Singleton(const Singleton&);

    Singleton& operator = (const Singleton &);

private:

    static T* m_pInstance;

};

 

template <typename T> T* Singleton<T>::m_pInstance = nullptr;

 

#endif

分享到:
评论

相关推荐

    Unity单例模式模板类

    Unity单例模式模板类,以供学习,有两个: 一个单纯的Singleton 一个MonoSingleton,继承于MonoBehaviour

    设计模式之单例模式.pptx

    单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。 许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。 比如在某个服务器程序中,该服务器的配置信息存放...

    单例模板类+vector排序

    本话题将深入探讨如何结合单例模式和模板类来实现一个管理vector中结构体数据并进行排序的系统。 首先,让我们理解单例模式的基本概念。单例模式确保无论何时,当你需要获取类的实例时,总是返回同一个对象。在C++...

    三种工厂设计模式和两种单例模式

    饿汉单例模式是线程安全的,因为它在类加载时就完成了实例化,所以不会存在多个线程同时创建多个实例的情况。这种模式在多线程环境下性能较好,但可能导致不必要的内存占用。 2. **懒汉单例模式**:也称为延迟初始...

    使用单例模式实现计数器

    其中,单例模式是一种非常经典且常用的设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。在C#中,我们可以利用单例模式来创建一个计数器类,以确保在整个应用程序的生命周期内,计数器只...

    单例模式的两种常用模板

    确保每个类只有一个实例,而且自动实例化并且将这个实例自动提供给系统。

    qt 单例模式,模板

    在编程领域,单例模式是一种常用的软件设计模式,它确保一个类只有一个实例,并提供一个全局访问点。在Qt框架中,我们同样可以应用单例模式来管理共享资源,如数据库连接。以下是对标题和描述中涉及知识点的详细解释...

    java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂 第二部分

    单例模式确保一个类只有一个实例,并提供全局访问点。在Java中,通常通过私有构造函数和静态方法来实现。单例模式常用于资源管理,如数据库连接池、线程池等,因为这些场景下创建过多实例会浪费资源且不利于管理。 ...

    设计模式之单例模式Java实现和类设计图

    在设计图中,单例模式会显示一个类(Singleton)和一个指向该类的静态引用,而装饰模式则会展示组件、装饰器和它们之间的继承关系。 通过熟练掌握并应用单例模式和装饰模式,开发者可以在保证代码可读性、可维护性...

    Qt单例模式MySQL连接池.rar

    本资源"Qt单例模式MySQL连接池.rar"提供了一个使用Qt框架并结合C++单例模式实现的MySQL数据库连接池模板,旨在优化Qt数据库开发的效率。 首先,我们来理解一下“单例模式”。单例模式是一种设计模式,它确保一个类...

    java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂

    2. **单例模式**:它保证一个类只有一个实例,并提供一个全局访问点。在Java中,通常通过私有构造器、静态工厂方法和双重检查锁定等技术实现单例,以确保线程安全和唯一性。 3. **代理模式**:代理模式为其他对象...

    单例设计模式.pdf

    在单例模式中,类的实例化过程被控制,防止了多线程环境下的多个实例产生,从而避免了潜在的共享状态问题。单例类通常包含一个私有的构造函数,以防止外部直接创建实例,同时提供一个公共的静态方法来获取唯一的实例...

    qt5编写的单例模板模式

    使用qt5开发的单例模板,可存取正常的类以及指针,一般用于大型的软件架构。

    ActionScript 3.0里使用单例模式

    在AS3中实现单例模式的核心思想是定义一个包含静态方法`getInstance()`的类,该方法负责创建并返回类的唯一实例。例如: ```as public class MyClass { private static var _instance:MyClass; public function ...

    设计模式总结-模板设计模式,单例模式(singleTon)

    ### 设计模式总结:模板设计模式与单例模式 #### 模板设计模式 模板设计模式是一种行为型设计模式,它定义了一个算法的骨架,并允许子类为算法的某些步骤提供具体的实现。通过这种方式,算法的基本流程保持不变,...

    设计模式入门之一:深入单例模式

    单例模式是设计模式中最基础且常用的一种,它旨在确保一个类只有一个实例,并提供一个全局访问点。在软件开发中,有些对象只需要一个实例就能满足需求,比如线程池、数据库连接、配置管理等。使用单例模式可以避免...

    c++中的单例类模板的实现方法详解

    类模板的单例模式允许我们将单例行为泛化到任意类型,只需为每个需要单例的类继承这个模板,即可轻松实现单例。例如,如果我们有`Display`和`Scanner`两个类需要实现单例,可以这样做: ```cpp class Display : ...

    C++中的单例模式及按需释放模型

    在后续的篇章中,作者将详细讲解如何在C++中实现这样的按需释放单例模式,包括如何使用辅助类以及模板类抽象出通用的解决方案。 总结起来,C++中的单例模式及其按需释放模型是优化资源管理的关键,它旨在平衡全局...

    一例读懂设计模式-单例模式、简单工厂模式.zip

    单例模式是一种限制类实例化次数的设计模式,确保一个类只有一个实例,并提供全局访问点。在C#中,单例模式通常通过以下方式实现: - 静态内部类:将单例实例化过程封装在静态内部类中,确保类实例在第一次访问时...

Global site tag (gtag.js) - Google Analytics