
设计模式
文章平均质量分 85
gogogo
这个作者很懒,什么都没留下…
展开
-
C++中的单例模式及按需释放模型(四)
三、使用模板类实现的通用单例类实例获取器例子工程的名称是GeneralFreeInstanceGetter。1、通用的模板类单例类实例获取器功能同前文描述的单例类获取器一样,我们改成模板类方式,把单例类作为模板参数,以便变成通用的单例类实例获取器。模板类的定义与实现namespace dpex{ template class SingletonInstanceGette原创 2011-11-29 17:35:22 · 2264 阅读 · 5 评论 -
C++中的单例模式及按需释放模型(三)
二、使用辅助类实现按需释放的单例模式例子工程的名称是SingleClassFreeInstanceGetter。1、引入辅助类为什么会想到引入辅助类来实现单例,这个辅助类要实现什么样的功能来辅助,要回答这两个问题,我们还是要先分析前文中要求单例类具有的特点,简单来讲就是2个特点,第一是要单例,第二是要具有生命周期,不能创建了就不管,关于单例研究的已经很多了,没有多少进一步处理的空间了,原创 2011-11-29 14:07:16 · 3128 阅读 · 0 评论 -
C++中的单例模式及按需释放模型(五)
四、多线程安全的通用单例类实例获取器例子工程的名称是SingletonThreadSafeInstanceGetter。刚开始写本文时,本没有想实现多线程版本,主观上以为同通常的单例模式一样,多个多线程同步就可以了,很简单,让读者自己开发就好了,不过后来真正去思考时发现不是那么简单的,感觉对此还是很有介绍的必要。1、单例类实例与单例类实例获取器实例的对应关系在实现多线程安全的通用单原创 2011-11-30 17:20:17 · 3436 阅读 · 0 评论 -
C++中的单例模式及按需释放模型(二)
一、在C++中实现单例模式例子工程的名称是Singleton。1、模拟C#的方法实现单例模式本人开始学习设计模式也是先看的C#语言描述的,后来要在C++上实现,参考了网上相关文章,使用一个静态类成员的指针来实现单例模式,代码如下:SingletonSimulateGC类定义class SingletonSimulateGC{private: SingletonSimula原创 2011-11-28 17:14:32 · 4531 阅读 · 2 评论 -
C++中的单例模式及按需释放模型(一)
关键字:C++、单例模式、友元、模板、多线程、对象生命周期 单例模式是设计模式中最简单最容易理解的模式之一,实用方便,项目设计开发中会被经常使用,但是不知道读者有没有考虑过这个问题,单例模式实例什么时候被释放,读者有兴趣可以仔细分析下,按照目前通常方法实现的单例模式都是直到系统退出的时候才释放的,甚至是有垃圾回收机制的C#上也是这样的,系统切换了功能模块还存在大量的这个模块根本不使用的单例原创 2011-11-28 16:19:21 · 6806 阅读 · 0 评论 -
按需释放单例模型的改进
在《C++中的单例模式及按需释放模型》系列文中已经对按需释放单例模型进行了详细描述,其中也提到了是模仿auto_ptr引入单例类实例获取器来控制单例类实例的生命周期,实现按需施放的,但是没有给出运算符重载的版本,本文对实例获取器给出运算符重载版本,使单例模型使用起来更加容易方便。不多说,直接给出单例类实例获取器的代码 template class Singleton_ptr { p原创 2011-12-05 13:56:35 · 1972 阅读 · 0 评论