Python单例模式
- 单例模式
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
-
单利的三个特点
- 某个类只能有一个实例
- 它必须自行创建这个实例
- 必须自行向整个系统提供这个实例
python实现
python new()在init()之前被调用,用于生成实例对象。利用这个方法和类的属性的特点可以实现设计模式的单例模式。单例模式是指创建唯一对象,单例模式设计的类只能实例化1个对象。
- 代码实现
class Singleton(object):
def __new__(cls, *args, **kwargs):
if not hasattr(cls, '_instance'):
cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs)
return cls._instance
# 测试
if __name__ == '__main__':
instance = Singleton()
instance2 = Singleton()
print(id(instance))
print(id(instance2))
输出的结果
两个实例的id 是相同的
3070140940
3070140940