当前位置 : 主页 > 编程语言 > python >

设计模式(Python语言)----单例模式

来源:互联网 收集:自由互联 发布时间:2022-08-10
更多信息请参考 【设计模式】 单例模式含义 保证一个类只有一个实例,并提供一个访问它的全局访问点 单例模式中的角色 单例(Singleton) 单例模式的优点 对唯一实例的受控访问 单


更多信息请参考 【设计模式】

单例模式含义

保证一个类只有一个实例,并提供一个访问它的全局访问点

单例模式中的角色

  • 单例(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,name):
self.name=name

if __name__=="__main__":
a=MyClass("zhangsan")
b=MyClass("lisi")
print(id(a))
print(id(b))
print(a.name)
print(b.name)

执行结果如下:

2804913929760
2804913929760
lisi
lisi

可以看出a,b是同一个对象,a和b的name属性当然是后赋值的sili

上一篇:设计模式(Python语言)----适配器模式
下一篇:没有了
网友评论