理解单例模式

之前很长一段时间,对于单例模式一直理解不了,什么是单例模式,查阅了很多文档,都没有说明白,今天再次看单例模式,豁然开朗.用py实现的单例模式,代码如下所示:

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


class MyClass(Singleton):
a = 1


one = MyClass()
two = MyClass()

two.a = 3

print(one.a)
# 3

这个时候,one,two两个对象就是相同的,后续的所有实例化对象都具有相同的属性.
即: 所谓单例就是所有引用(实例、对象)拥有相同的状态(属性)和行为(方法)

原文地址:https://www.cnblogs.com/L-O-N/p/14061900.html