单例 是最为最常见的设计模式之一。对于任何时刻,如果某个类只存在且最多存在一个具体的实例,那么我们称这种设计模式为单例。例如,对于 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;