单例模式介绍
单例设计模式是一种创建型的设计模式,它确保一个类有且只有一个特定类型的对象。
单例设计模式的意图为:
1.确保类只有一个对象被创建调用。
2.为对象提供一个访问点,并且可以全局访问该对象。
3.控制共享资源的并行访问。
单例设计模式的来源
在我们面向对象的编程时,当业务并发量很大时,会出现重复创建对象,每创建一个对象时,会占用一块的内存空间,然而这些对象是一模一样的,这样就会造成大量的内存空间的浪费,这时单例设计模式就出来了,它使我们每次实例化创建的对象都是同一个对象,当然同一个对象的属性是相同的,方法是相同的,内存地址也是相同的,这样就给我们节省了大量的内存空间。
python实现单例设计模式
class A(object):
def __new__(cls,*args,**kwargs):
if not hasattr(cls,"_instance"):
cls._instance = super().__new__(cls,*args,**kwargs)
return cls._instance
b = A()
c = A()
此时打印输出b和c,b和c的内存地址是一样的。
__new__方法会在类的实例化创建对象自动被调用的函数,通过对该方法的重写,判断出类中是否存在_instance,如果没有就创建一个对象,并为其属性赋值,然后返回instance中的对象,这样我们就实现了每次创建实例返回的都为instance的值