码迷,mamicode.com
首页 > 其他好文 > 详细

单例模式

时间:2015-02-28 18:18:58      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:

一、单例模式

单例模式就是保证在一个系统中最多只存在该类的一个对象,这在数据库连接中的非常实用。

单例按对象生成的时间点的不同模式分为两种:懒汉单例模式、恶汉单例模式

二、两种单例模式

懒汉单例模式:

#ifndef __SINGLE_TON_H__
#define __SINGLE_TON_H__

class SingleTon
{
public:
    ~SingleTon()
    {
        if (ms_pSingleTon != NULL)
        {
            delete ms_pSingleTon;
            ms_pSingleTon = NULL;
        }
    }

public:
    static SingleTon *GetInstance() // 获得对象的接口
    {
        if (ms_pSingleTon != NULL)
        {
            ms_pSingleTon = new SingleTon();
        }
        return ms_pSingleTon;
    }
    
private:
    SingleTon(); // 私有的构造函数
    
private:
    static SingleTon *ms_pSingleTon;
};

#endif __SINGLE_TON_H__

恶汉单例模式:


仔细思考了一下才发现,貌似C++无法实现恶汉单例模式,也可能是我没考虑到怎么实现。

三、恶汉VS懒汉

恶汉是在一开始就实例化一个对象放在那里,它是以空间换时间

懒汉是在需要的时候才去实例化一个对象并返回,它是以时间换空间

四、总结

原来以为单例模式很简单,自己也理解了它的实现原理以及可以用到的场景,但是实际编码的时候才发现,还是有自己未想到的地方,比如:我认为在C++中是无法实现恶汉单例模式的,这是我以前没有想到的问题。

告诉自己不要眼高手低,看书的同时也要多敲代码。

 

单例模式

标签:

原文地址:http://www.cnblogs.com/lit10050528/p/4305858.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!