[设计模式]<3>. C++与单例模式(singleton pattern)

默默地EEer

原文地址:

http://www.cnblogs.com/hebaichuanyeah/p/5608209.html

单例模式是指,保证一个类,只有唯一一个实例,并提供这个实例的全局访问。

1.不靠谱之单例模式

很容易写出如下代码,通过Singleton类中的static函数去获取唯一的static指针变量,同时把Singalton类的构造函数设置为private,不允许构造多个对象。

#include "iostream"
using namespace std;

class Singleton
{
private:
    Singleton(){}
    static Singleton *singleObject;
public :
    static Singleton * getSingleObject()
    {
        if(singleObject==NULL)
        {
            singleObject = new Singleton();
        }
        return singleObject;
    }
};
Singleton * Singleton::singleObject;

main()
{
    Singleton * p= Singleton::getSingleObject();
}
时间: 2024-11-04 01:38:05

[设计模式]<3>. C++与单例模式(singleton pattern)的相关文章

设计模式之单例模式Singleton pattern

单例模式Singleton pattern 一种软件设计模式.在核心结构中只包含一个被称为单例的特殊类. 一个类只有一个对象实例,并且自行实例化向整个系统提供. 动机 一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务:一个系统只能有一个窗口管理器或文件系统:一个系统只能有一个计时工具或ID(序号)生成器.如在Windows中就只能打开一个任务管理器.如果不使用机制对窗口对象进行唯一化,将弹出多个窗口,如果这些窗口显示的内容完全一致,则是重复对象,浪费内存资源:如果这些窗口显示的内容不

二十四种设计模式:单例模式(Singleton Pattern)

单例模式(Singleton Pattern) 介绍保证一个类仅有一个实例,并提供一个访问它的全局访问点. 示例保证一个类仅有一个实例. Singleton using System; using System.Collections.Generic; using System.Text; namespace Pattern.Singleton { /// <summary> /// 泛型实现单例模式 /// </summary> /// <typeparam name=&q

ninject学习笔记二:单例模式singleton pattern

今天准备学习singleton pattern,顾单词思含义,就是一个实例的意思.单例的实现思路是:私有化构造函数,提供公有方法获取类的实例.下面定义一个音乐播放器类MusicPlayer,观察单例的实现方法 class MusicPlayer { private static readonly MusicPlayer player = new MusicPlayer(); private MusicPlayer() { } public static MusicPlayer GetInstan

.NET设计模式实例之单例模式( Singleton Pattern)

一.单例模式简介(Brief Introduction) 单例模式(Singleton Pattern),保证一个类只有一个实例,并提供一个访问它的全局访问点.单例模式因为Singleton封装它的唯一实例,它就可以严格地控制客户怎样访问它以及何时访问它. 二.解决的问题(What To Solve) 当一个类只允许创建一个实例时,可以考虑使用单例模式. 三.单例模式分析(Analysis)1.单例模式结构 Singleton类,定义一个私有变量instance;私有构造方法Singleton(

单例模式 (Singleton pattern)

What is Singleton pattern? In Wikipedia, there is an explanation:"In software engineering, the singleton pattern is a design pattern that restricts the instantiation of a class to one object." 一.什么是单例模式? 在维基百科中,是这样解释的,“在软件工程中,单例模式指的是对类加以限制,只允许创建

Swift 实现单例模式Singleton pattern的三种方法

转自:点击打开链接 From my short experience with Swift there are three approaches to implement the Singleton pattern that support lazy initialization and thread safety. These approaches might change or become redundant as the language matures. Global constant

&quot;围观&quot;设计模式(7)--创建型之单例模式(Singleton Pattern)

单例模式,也叫单子模式,是一种常用的软件设计模式.在应用这个模式时,单例对象的类必须保证只有一个实例存在.许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为.比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息.这种方式简化了在复杂环境下的配置管理.----维基百科(WIKIPEDIA) 个人的理解: 单例模式概念比较简单,他的目的就是只允许出现一个该类的实例,经常在JD

设计模式之五:单例模式(Singleton Pattern)

单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 单例模式有三个要点: 点某个类只能有一个实例: 它必须自行创建这个实例 它必须自行向整个系统提供这个实例. 一些资源管理器常常设计成单例模式. C#中的单例模式 保证一个类仅有一个实例,并提供一个访问它的全局访问点 实现要点: 单例模式是限制而不是改进类的创建. 单例模式一般不要支持Icloneable接口,因为这可能导致多个对象实例,与单例模式的初衷违背. 单例模式一般

设计模式之单件模式(Singleton Pattern)

一.单件模式是什么? 单件模式也被称为单例模式,它的作用说白了就是为了确保“该类的实例只有一个” 单件模式经常被用来管理资源敏感的对象,比如:数据库连接对象.注册表对象.线程池对象等等,这种对象如果同时存在多个的话就会造成各种不一致的麻烦(你总不希望发生数据库重复连接的异常吧) 二.如何保证类的实例只有一个? (这个问题看似简单,但如果没有接触过单件模式的话,要自己想出来解决方案还是需要一些天赋的..不信的话,可以试着想想..) 1.类的实例可能只有一个吗?貌似只要知道类名就可以随便new了吧?