描述:
单例 是最为最常见的设计模式之一。对于任何时刻,如果某个类只存在且最多存在一个具体的实例,那么我们称这种设计模式为单例。例如,对于 class Mouse (不是动物的mouse哦),我们应将其设计为 singleton 模式。
你的任务是设计一个 getInstance
方法,对于给定的类,每次调用 getInstance
时,都可得到同一个实例。
样例:
在 Java 中:
A a = A.getInstance();
A b = A.getInstance();
a 应等于 b.
思路:
- 单例的常规写法
- python2中必须继承新式类,也就是定义类时必须继承类,没有就继承object
- python3中可以不用新式类
答案:
#python3:
class Solution:
# @return: The same instance of this class every time
_instance = None
@classmethod
def getInstance(cls):
if not cls._instance:
cls._instance = super(Solution, cls).__new__(cls)
return cls._instance
#python2
class Solution(object):
# @return: The same instance of this class every time
_instance = None
@classmethod
def getInstance(cls):
if not cls._instance:
cls._instance = super(Solution,cls).__new__(cls)
return cls._instance