`

[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

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

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

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

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

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

    设计模式--C++

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

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

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

    设计模式,软件开发者必读

    2.1 SINGLETON单件模式 11 2.1.1 典型的SINGLETON类 11 2.1.2 多线程安全的SINGLETON类 12 2.1.3 双重锁定SINGLETON 13 2.1.4 静态初始化SINGLETON 13 2.1.5 SINGLETON的子类化问题 14 2.1.6 SINGLETON销毁 15 2.1.7...

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

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

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

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

    Head.First设计模式_PDF.part1

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

    单件模式的C++实现

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

    asp.net知识库

    C++ 泛型编程系列讲座之实施 泛型技巧系列:简单类型选择器 C# 泛型简介 我眼中的C#2.0新功能特性 泛型技巧系列:避免基类及接口约束 New Article 不该用Generics实现Abstract Factory的理由 C#2.0-泛型 C#2.0-...

Global site tag (gtag.js) - Google Analytics