来源:Lintcode
原帖:http://www.lintcode.com/en/problem/singleton/
题目:
Singleton is a most widely used design pattern. If a class has and only has one instance at every moment, we call this design as singleton. For example, for class Mouse (not a animal mouse), we should design it in singleton.
You job is to implement a getInstance method for given class, return the same instance of this class every time you call this method.
Have you met this question in a real interview? Yes
Example
In Java:
A a = A.getInstance();
A b = A.getInstance();
a should equal to b.
Challenge
If we call getInstance concurrently, can you make sure your code could run correctly?
代码:
原帖:http://www.lintcode.com/en/problem/singleton/
题目:
Singleton is a most widely used design pattern. If a class has and only has one instance at every moment, we call this design as singleton. For example, for class Mouse (not a animal mouse), we should design it in singleton.
You job is to implement a getInstance method for given class, return the same instance of this class every time you call this method.
Have you met this question in a real interview? Yes
Example
In Java:
A a = A.getInstance();
A b = A.getInstance();
a should equal to b.
Challenge
If we call getInstance concurrently, can you make sure your code could run correctly?
代码:
class Solution {
public:
/**
* @return: The same instance of this class every time
*/
static Solution* getInstance() {
// write your code here
if (obj == NULL) {
obj = new Solution();
}
return obj;
}
private:
Solution() {}
static Solution* obj;
};
Solution* Solution::obj = NULL;
No comments:
Post a Comment