`

[C++] [设计模式] Singleton(单件/单例)模式

    博客分类:
  • C++
阅读更多

转自http://dark-c.at/blog/?p=79

单例模式,顾名思义,此模式下的对象实例永远只有一个.很多初学者感觉这个模式的用处不大.但实际上,这个模式的应用非常广泛.

很多情况下,我们会很自然的使用单例的方式来实现功能,如全局内存池;全局资源管理器;某个全局的工具类工厂...在UI开发上,同一时间点上仅会出现一个实例的对话框,也可以使用单例实现.

单例的类图很简单:

 

 

它的目的,就是给程序提供一个全局唯一的访问点,用于访问某些资源;固定的算法或唯一的对象等.

单例模式的构建方式主要有两种:饿汉方式与懒汉方式.也就是静态初始化的单例与运行时根据需要初始化的单例.

  • 饿汉方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// 静态单例类
class CSingletonStatic sealed
{
private:
    // 存储唯一的实例
    static const TSmartPtr<CSingletonStatic> instance;
 
private:
    CSingletonStatic()
    {
    }
 
public:
    border-top-left-radius: 0px 0px !important; border-top-right-radius: 0px 0px !important; border-bottom-right-radius: 0px 0px !important; border-bottom-left-radius: 0px 0px !important; background-image: none !important; background-color: initial !important; float: none !important; height: aut
分享到:
评论

相关推荐

    C++设计模式课件12_Singleton_单件模式.pdf

    单件模式是软件设计模式中最为基础且应用广泛的一种模式。它确保一个类只有一个实例,并提供一个全局访问点来获取该实例。此模式通常用于那些需要频繁创建、消耗大量资源的对象上,如数据库连接池等。 #### 一、...

    Head First 设计模式 (五) 单件模式(Singleton pattern) C++实现

    单件模式(Singleton pattern)是设计模式中的一种结构型模式,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于系统中需要频繁创建和销毁的对象,如日志服务、线程池或者数据库连接等...

    c++实现单件模式 c++实现单件模式 c++实现单件模式

    单件模式(Singleton Pattern)是设计模式中的一种,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式在软件开发中被广泛应用,比如配置管理、数据库连接池、日志服务等场景,需要确保全系统...

    C++设计模式(Design Pattern)范例源代码

    23种设计模式(Design Pattern)的C++实现范例,包括下面列出的各种模式,代码包含较详细注释。另外附上“设计模式迷你手册.chm” 供参考。 注:项目在 VS2008 下使用。 创建型: 抽象工厂模式(Abstract Factory) ...

    二十三种设计模式【PDF版】

    设计模式之 Singleton(单态/单件) 阎宏博士讲解:单例(Singleton)模式 保证一个类只有一个实例,并提供一个访问它的全局访问点 设计模式之 Factory(工厂方法和抽象工厂) 使用工厂模式就象使用 new 一样频繁. ...

    单件模式的C++标准实现.docx

    单件模式(Singleton Pattern)是一种常用的软件设计模式,它的主要意图是确保一个类只有一个实例,并提供一个全局访问点。在C++中,实现单件模式通常涉及到类的静态成员和私有构造函数的使用,以防止用户直接创建类...

    1.单件设计模式.rar

    单件设计模式.rar"中,很可能包含了不同实现方式的示例代码,以及对各种实现的比较分析,如性能差异、内存占用等。通过学习这些案例,你可以更深入地理解C++中的单例设计模式,以及如何在实际项目中应用和优化。

    用单件模式写的写日志文件(VC版)

    单件模式(Singleton Pattern)是软件设计模式中的一种,它保证一个类只有一个实例,并提供一个全局访问点。在C++编程中,单件模式通常用于管理共享资源,比如日志系统,因为它需要在整个应用程序中被多个组件访问,...

    GOLF设计模式(C++语言版)

    3.5 Singleton(单件)—对象创建型 模式 84 3.6 创建型模式的讨论 89 第4章 结构型模式 91 4.1 Adapter(适配器)—类对象结构型 模式 92 4.2 Bridge(桥接)—对象结构型 模式 100 4.3 Composite(组成)...

    单件模式源代码

    单件模式(Singleton Pattern)是软件设计模式中最基础且常用的一种模式,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式在需要控制实例化过程或者资源管理的场景中尤其适用,例如日志服务...

    C++ 设计新思维:范型编程与设计模式之应用

    4. 单件(Singleton)模式:设计模式之一,保证一个类只有一个实例,并提供一个全局访问点。在C++中,通常通过私有构造函数和静态成员变量来实现。单件模式常用于控制资源的唯一性和全局配置。 5. 智能指针:智能...

    单件实现范例

    单件模式(Singleton Pattern)是设计模式中的一种结构型模式,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于系统中需要频繁创建和销毁的对象,例如日志服务、线程池、数据库连接等...

    GoF 23种设计模式解析.pdf

    《GoF 23种设计模式解析》这本书详细介绍了由Erich Gamma等四位作者(通常称为GoF四人组)所总结出的23种经典设计模式,并提供了基于C++语言的实现示例。 #### 创建型模式 创建型模式关注的是对象的创建机制,它们...

    设计模式可复用面向对象软件的基础.

    本书设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好,表达清楚的软件设计模式,这些模式在实用环境下有特别有用...

    Head.First设计模式_PDF.part1

    第1章到第11章陆续介绍的设计模式为Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton、Command、Adapter、Facade、Templat Method、Iterator、Composite、State、Proxy。最后三章比较...

    设计模式 pdf

    根据本书的标签“设计模式 C++ PDF”,可以推测这本书是用C++语言来实现这些设计模式的案例。C++是一种静态类型、编译式、通用的编程语言,非常适合用来展示和实现设计模式。它不仅支持面向对象编程,还支持泛型编程...

    SingletonText.rar_系统设计方案_C/C++_

    在C++编程中,“Singleton”模式是一个至关重要的设计模式,它保证了一个类只有一个实例,并提供一个全局访问点。这个模式尤其适用于资源管理、配置对象或日志记录等场景,因为这些情况下通常只需要一个全局共享的...

    单件模式的C++实现

    单件模式是一种用于确保整个应用程序中只有一个类实例且这个实例所占资源在整个应用程序中是共享时的程序设计方法(根据实际情况,可能需要几个类实例)。在某些情况下,这种程序设计方法是很有用处的。  ...

Global site tag (gtag.js) - Google Analytics