设计模式第二弹
一、应用
1.1 概念
单例模式是一种创建型的设计模式,这种设计模式主要的目的是为了让一个类只保留一个实例。
1.2 应用场景
如果你需要创建一个数据库连接对象,那么我们就需要将数据库连接类做成单例模式。
二、实现
2.1 Python实现
class SingleMeta(type):
__instance = None
def __call__(cls, *args, **kwargs):
if cls not in cls.__instance:
instance = super().__call__(*args, **kwargs)
cls.__instance[cls] = instance
return cls.__instance[cls]
class SingleDemo(metaclass=SingleMeta):
# 元类单例后实例化该类会单例化
def func1(self):
pass
if __name__ == '__main__':
s1 = SingleDemo()
s2 = SingleDemo()
print(id(s1) == id(s2))