单例模式

内容:保证一个类只有一个实例,并提供一个访问它的 全局访问点。

角色:单例(Singleton)

使用场景:当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时

优点:

  • 对唯一实例的受控访问
  • 单例相当于全局变量,但防止了命名空间被污染

与单例模式功能相似的概念:全局变量、静态变量(方法)

单例的实现方法:

#!/usr/bin/env python
# -*- coding: utf8 -*-
# __Author: "Skiler Hao"
# date: 2017/6/2 18:46


class Singleton(object):
    def __new__(cls, *args, **kwargs):
        if not hasattr(cls,"_instance"):
            cls._instance = super().__new__(cls)
        return cls._instance


class MyClass(Singleton):
    pass


class1 = MyClass()
class2 = MyClass()

print(id(class1))
print(id(class2))
__new__方法实现单例
原文地址:https://www.cnblogs.com/skiler/p/6934827.html