单例 是最为最常见的设计模式之一。对于任何时刻,如果某个类只存在且最多存在一个具体的实例,那么我们称这种设计模式为单例。例如,对于 class Mouse (不是动物的mouse哦),我们应将其设计为 singleton 模式。
你的任务是设计一个 getInstance 方法,对于给定的类,每次调用 getInstance 时,都可得到同一个实例。
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.
样例
在 Java 中:
A a = A.getInstance();
A b = A.getInstance();
a 应等于 b.
挑战
如果并发的调用 getInstance,你的程序也可以正确的执行么?
Challenge
If we call getInstance concurrently, can you make sure your code could run correctly?
class Solution {
/**
* @return: The same instance of this class every time
*/
private static final Solution solution = new Solution();
private Solution(){
}
public static Solution getInstance() {
return solution;
}
};