zoukankan      html  css  js  c++  java
  • 单例模式

    单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。

    在python中如何实现单例模式?

    • 在类中创建私有静态字段,保存类的实例
    • 改变类的实例化方式,由类名()变成类名.instance()

    非单例模式类的实现以及访问方式

    class SqlHelper():
        pass
    
    obj1=SqlHelper()
    print id(obj1)
    obj2=SqlHelper()
    print id(obj2)

    运行结果,内存中生成了2个实例,结果如下:

    image

    单例模式实现以及访问方式

    class SqlHelper():
        __static_name=None
    
        @classmethod
        def instance(cls):
            if cls.__static_name:
                return cls.__static_name
            else:
                cls.__static_name=SqlHelper()
                return cls.__static_name
    
    
    obj1=SqlHelper.instance()
    print id(obj1)
    obj2=SqlHelper.instance()
    print id(obj2)

    运行结果,内存中生成了一个实例,结果如下:

    image

  • 相关阅读:
    Jupyter notebook 读取文件的问题
    机器学习-数据清洗和特征选择
    机器学习-逻辑回归
    Java教程
    13.并发编程
    redis 实现
    CyclicBarrier介绍
    Future模式衍生出来的更高级的应用
    并发编程 futuretask
    整理POST请求方式
  • 原文地址:https://www.cnblogs.com/yanhongjun/p/5360320.html
Copyright © 2011-2022 走看看