单例还有没有其他的实现方式?
有,我们的实现,使用的就是传说中的懒汉方式,还有饿汉方式,实现也挺简单的
1 | 1. 把单例的简单实现中的 |
此外,还可以直接在 getInstance() 函数里定义一个静态的 ConfigUtil 变量(具体的可以参考 Qt 的宏 Q_GLOBAL_STATIC
的实现)。
单例的饿汉方式写起来很简单,为什么要花这么多时间用懒汉方式来实现呢?
- 一是饿汉方式有它自己的缺点,程序启动的时候就会创建这个单例对象,如果创建这个对象很耗时,就会使得程序启动时间过长,有的时候可能不需要这个对象,但是也给我们创建了,浪费资源,可以在网络上搜索到很多讨论的文章。
- 二是懒汉方式自身的优点以及涉及到的知识点更多,希望通过介绍实现与代码优化过程,丰富知识的同时能从中有所启发,提高我们的编码技能,代码不仅功能不能少,优雅也是很重要的,那个……至少能和别人吹吹牛也是极好的。