设计模式-创建型-单例模式

文章目录

单例模式

概述

  • 保证一个类只有一个实例,并提供一个访问他的全局访问点

角色

  • 单例(Singleton)

例子

"""还有其他的一些实现方式以及一些更完善的代码结构,这里只是来简单的理解模式概念"""
class Singleton:
    def __new__(cls, *args, **kwargs):
        if not hasattr(cls, "_instance"):
            cls._instance = super(Singleton, cls).__new__(cls)
        return cls._instance

class MyClass(Singleton):
    def __init__(self, x):
        self.x = x

a = MyClass(10)
b = MyClass(20)

print(f"{a.x}, {b.x}, {id(a)}, {id(b)}")

优点

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


下一篇:539 最小时间差