单例设计模式

154 阅读1分钟

单例模式介绍

单例设计模式是一种创建型的设计模式,它确保一个类有且只有一个特定类型的对象。

单例设计模式的意图为:

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的值