单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
在python中如何实现单例模式?
- 在类中创建私有静态字段,保存类的实例
- 改变类的实例化方式,由类名()变成类名.instance()
非单例模式类的实现以及访问方式
class SqlHelper(): pass obj1=SqlHelper() print id(obj1) obj2=SqlHelper() print id(obj2)
运行结果,内存中生成了2个实例,结果如下:
单例模式实现以及访问方式
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)
运行结果,内存中生成了一个实例,结果如下: