204. 单例

描述:

单例 是最为最常见的设计模式之一。对于任何时刻,如果某个类只存在且最多存在一个具体的实例,那么我们称这种设计模式为单例。例如,对于 class Mouse (不是动物的mouse哦),我们应将其设计为 singleton 模式。

你的任务是设计一个 getInstance 方法,对于给定的类,每次调用 getInstance 时,都可得到同一个实例。

样例:

在 Java 中:

A a = A.getInstance();
A b = A.getInstance();

a 应等于 b.

思路:

  1. 单例的常规写法
  2. python2中必须继承新式类,也就是定义类时必须继承类,没有就继承object
  3. 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

你可能感兴趣的:(204. 单例)