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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 描述 单例 是最为最常见的设计模式之一。对于任何时刻,如果某个类只存在且最多存在一个具体的实例,那么我们称这种设计...
    6默默Welsh阅读 1,144评论 0 0
  • 前言 本文主要参考 那些年,我们一起写过的“单例模式”。 何为单例模式? 顾名思义,单例模式就是保证一个类仅有一个...
    tandeneck阅读 7,237评论 1 8
  • 单例模式(SingletonPattern)一般被认为是最简单、最易理解的设计模式,也因为它的简洁易懂,是项目中最...
    成热了阅读 9,842评论 4 34
  • 1 场景问题# 1.1 读取配置文件的内容## 考虑这样一个应用,读取配置文件的内容。 很多应用项目,都有与应用相...
    七寸知架构阅读 11,780评论 12 68
  • 当时的你是最好的你,后来的我才是最好的我,最好的我们之间,搁了一整个青春。 ...
    23a3172ba764阅读 955评论 0 1