单例模式的C++简单实现

来源:互联网 发布:淘宝网店推广方法 编辑:程序博客网 时间:2024/06/06 07:17

LintCode题目要求:
<pre name="code" class="cpp">

单例 是最为最常见的设计模式之一。对于任何时刻,如果某个类只存在且最多存在一个具体的实例,那么我们称这种设计模式为单例。例如,对于 class Mouse (不是动物的mouse哦),我们应将其设计为 singleton 模式。

解决代码:

class Solution {public:    /**     * @return: The same instance of this class every time     */    static Solution* getInstance() {        // write your code here        static Solution* instance;        return instance;    }};

几点个人看法:
单例模式的意义在于希望某个类最多存在一个共同的实例,特别是如果是用new生成类实例的时候,应该注意如果并发调用getInstance()会产生的问题。为此:
  1. 需要在new前判断是否已存在instance
  2. 因为并发调用的原因,在new之前应该加锁。
  3. 加锁的代价较高,不能每次都先加锁再判断是否有new类的实例,而是应该在需要new之前加锁!
0 0
原创粉丝点击