单例模式定义

该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

在C++中,我个人的理解是,不需要自己new类指针,这样一方面也方便程序员自己管理内存,另一方面可以节省系统指针,减少占用内存资源。

 

单例模式的实现要求

简单的来说,就是一个类要有唯一的单例,而且这个单例类能够被其他对象所调用,不能用,那就没意义了嘛 。

单例模式的代码实现

前面两个定义和实现要求理解之后,让我们来看看单例模式是如何在C++中被巧妙地利用。

首先看一下使用单例模式的类

头文件单例类的定义如下:

 

其中定义了单例成员指针m_Instance或获取单例指针的方式

还定义了类CGarbage 用于释放单例指针

接下来是实现cpp文件

 

这里面很容易看出来 getSingleton()函数用来new单例指针 判断是否单例指针存在,这样的好处 是可以保证整个类的全局指针 只占用一个内存地址,无需每次都要new

接下来看一下测试代码

 

运行程序 :

 

可以明显的看出,只产生了一个实例指针,这样很方便我们去管理内存,也不占用内存资源

接下来看一下不用单例模式的常规类会有什么不一样

头文件

 

定义了一个人的类 里面一个walk方法

实现

 

很简单 和上面一样

接下来看一下测试代码

 

测试代码也很简单

new了两个指针 然后执行walk函数 最后看一下地址 然后释放内存

看一下运行结果:

 

可以明显看出 这个产生了两个内存,如果在大型项目当中 需要在不同的文件当中引用类,很明显,对于程序本身占用内存 是个负担,而且 很容易造成内存泄漏的现象,所以单例模式的优势也显而易见,可以尽可能占用少的内存,并且及其易于管理内存,希望借着两个例子,能够给大家带来一点启发。

另外如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!

C语言C++编程学习交流圈子,QQ群1030652847点击进入】微信公众号:C语言编程学习基地

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

编程学习书籍分享:

编程学习视频分享:

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/112Q/p/13991493.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!