zl程序教程

您现在的位置是:首页 >  后端

当前栏目

什么是单例模式?它有什么用?

模式 什么 单例
2023-09-14 09:15:54 时间

单例模式

单例模式的设计模式是什么?它有什么用?


单例模式保证一个类仅有一个实例,同时这个类还必须提供一个访问该类的全局访问点。

单例模式,新建多少个对象,内存地址都是一样的

在这里插入图片描述

在程序运行期间保证类的实例只有1个,例如数据库连接

单例模式能让程序使用内存急剧减少

class C:
    __instance = None  # 声明一个私有属性,为None,保存实例

    # 重写默认__new__方法创建实例
    def __new__(cls, *args, **kwargs):
        if not cls.__instance:  # 判断__instance是否为None,如果是则创建对象
            cls.__instance = object.__new__(cls)
        return cls.__instance

    def f1(self):
        print('C类')


if __name__ == '__main__':
    c = C()
    c1 = C()
    # c和c1是一样的嘛?
    print(c is c1)  # True