单例模式(Singleton)-设计模式(五)

原创 2016年08月31日 10:59:34

单例模式我觉得就是唯一性,个人认为 Singleton 模式是设计模式中最为简单、最为常见、最容易实现,也是最应该熟悉和掌握的模式。
作用:保证一个类仅有一个实例, 并提供一个访问它的全局访问点。
解析:
Singleton 模式其实是对全局静态变量的一个取代策略,上面提到的Singleton 模式的两个作用在 C++中是通过如下的机制实现的:
1)仅有一个实例,提供一个类的静态成员变量,大家知道类的静态成员变量对于一个类的所有对象而言是惟一的
2)提供一个访问它的全局访问点,也就是提供对应的访问这个静态成员变量的静态成员函数,对类的所有对象而言也是惟一的.在 C++中, 可以直接使用类域进行访问而不必初始化一个类的对象.
Singleton 模式需要说明的是,Singleton 不可以被实例化,因此我们将其构造函数声明为 protected或者直接声明为 private。
如果一个项目中用到的singleton模式较多的话,一般会定义一个模板:

Template <typename T>
class Singleon
{
    //类的声明和实现
}
//需要用到Singleton的类
class Testpublic Singleton<Test>
{
    //类的声明
}

个人觉得Singleton模式的实现很简单,看个简单的实现吧。

 #include<iostream>

using namespace std;

class Singleton
{
    public:
        static Singleton* Instance()
        {
            if(_instance == 0)
            {
                _instance = new Singleton();
            }
            return _instance;
        }
    protected:
        Singleton()
        { 
            cout<<"Singleton..."<<endl; 
        }
    private:
        //静态成员变量,提供全局唯一的一个实例
        static Singleton* _instance;
};
//类的静态成员变量要在类体外进行定义
Singleton* Singleton::_instance = 0;
int main()
{
    Singleton* sgn = Singleton::Instance();
    return 0;
}

这里写图片描述
这里写图片描述

版权声明:本文为博主原创文章,转载时需声明出处。http://blog.csdn.net/tax10240809163com

相关文章推荐

设计模式 (六)单例模式(Singleton)

单例模式就是确保一个类只有一个实例,并且该实例必须自动创建,并向整个系统提供该实例。这样保证了对外的对象的属性等均为一个实例,就像是银行取款 单例模式原理图: 单例模式分为饿汉式单例模式和...
  • wclxyn
  • wclxyn
  • 2012年04月05日 23:29
  • 1439

设计模式(一):单例模式(Singleton Pattern)

单例模式(Singleton Pattern)是设计模式中常用的一种,知识点包括:1、理解什么是单例模式、单例模式有什么优点/缺点、单例模式的应用场景;2、再来看看Java单例模式的6种代码实现方式、...
  • tjiyu
  • tjiyu
  • 2017年08月02日 11:52
  • 565

设计模式--单例模式【Singleton Pattern】

这个模式是很有意思,而且比较简单,但是我还是要说因为它使用的是如此的广泛,如此的有人缘,单例就是单一、独苗的意思,那什么是独一份呢?你的思维是独一份,除此之外还有什么不能山寨的呢?我们举个比较难复制的...

【设计模式】Singleton Pattern 单例模式

1.单例模式  确保一个类只有一个实例,并提供一个全局访问点。 应用场景:对于我们只需要一个对象的场景,如线程池(threadpool)、缓存(cache),如果制造出多个实例,就会导致许多问题。 ...

设计模式之单例模式Singleton

设计模式之单例模式Singleton 参考文献 参考1:http://www.iteye.com/topic/60179 参考2:研磨设计模式 参考3:http://cantellow.i...

设计模式-单例模式(singleton pattern)

单例模式定义:确保一个类只有一个实例,并提供全局访问点.    应用场景:书中介绍有  线程池  缓存  对话框  注册表 日志 打印机驱动程序的对象等   个人在android开发中 使用到的场景是...

设计模式总结之Singleton Pattern(单例模式)

保证一个类仅有一个实例,并提供一个访问它的全局访问点。

设计模式(创建型)之单例模式(Singleton Pattern)

单例模式可能是23种设计模式中最简单的。应用也非常广泛,譬如Android中的数据库访问等操作都可以运用单例模式。核心概念: 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:单例模式(Singleton)-设计模式(五)
举报原因:
原因补充:

(最多只允许输入30个字)