OJ lintcode 单例

单例 是最为最常见的设计模式之一。对于任何时刻,如果某个类只存在且最多存在一个具体的实例,那么我们称这种设计模式为单例。例如,对于 class Mouse (不是动物的mouse哦),我们应将其设计为 singleton 模式。
你的任务是设计一个 getInstance 方法,对于给定的类,每次调用 getInstance 时,都可得到同一个实例。

样例
在 Java 中:
A a = A.getInstance();
A b = A.getInstance();
a 应等于 b.

// 关于单例模式 要注意三点
//1. 一个类只能有一个对象,也就是说一定存在static 修饰的函数 或者对象
// 2. 不能随意创建对象,所以类的拷贝,复制,赋值构造函数一定是是有的
//3. 既然static ,getInstance 是static 的函数,另外一个很重要的是一定有一个static 的对象 ,

//基本思路
// 使用的使用一定是这样的

/*
    int main(){
        Solution * s=Solution :: getInstane () ;
    }

    getinstance 是属于这个类的函数,不属于任何对象。

*/
class Solution {
private:
    static Solution * s;

    Solution() {
        s = NULL;
    };
    Solution(const  Solution & s) {};  //复制构造函数
    void  operator = (const Solution &s) {};   //复制构造函数
public:
    /**
    * @return: The same instance of this class every time
    */
    static Solution* getInstance() {
        // write your code here
        if (s == NULL) {
            s = new Solution();
            return s;
        }
        else {
            return s;
        }
    }
};
//记得要加上这个
Solution * Solution::s = NULL;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容