文章目录
单例模式
概述
- 保证一个类只有一个实例,并提供一个访问他的全局访问点
角色
- 单例(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)}")
优点
- 对唯一实例的受控访问
- 单例相当于全局变量,但防止了命名空间污染