单例模式

特点:要求一个类仅有一个实例,并且提供一个访问该实例的全局访问点。

优点:1」单例模式可以在系统设计一个全局访问点,例如设计一个单例类,负责对所有数据表的处理

     2」创建一个单例模式,减少系统的消耗。当一个对象启动消耗的资源比较的多的时候,

     可以通过其他应用启动一个单例对象,使其永久驻留内存的形式来处理

常见的五种单例模式的实现方式:

1」饿汉式:线程安全,调用效率高,但是不能延时加载。

2」懒汉式:线程安全,调用效率不高,但是可以延时加载。

3」元类实现单例模式:线程安全,调用效率高,可以延时加载。

代码实现:

「1」当类初始化的时候,就创建这个实例对象,以后永远返回同一个实例对象。

class Singleton1(object):
    # 通过覆盖__new__方法来控制对象的创建。
    def __new__(cls, *args, **kwargs):
        # hasattr用于查看对象cls是否有instance属性,该属性作用是检测该类是否已经生成了一个对象
        if not hasattr(cls, 'instance'):
            cls.instance = super(Singleton1, cls).__new__(cls)
        return cls.instance


s = Singleton1()
s1 = Singleton1()
print(s)
print(s1)

结果:
<__main__.Singleton1 object at 0x102c3b198>
<__main__.Singleton1 object at 0x102c3b198>
View Code

相关文章:

  • 2021-07-18
  • 2022-01-02
  • 2021-08-04
  • 2021-07-05
  • 2022-12-23
  • 2022-02-05
猜你喜欢
  • 2021-06-10
  • 2021-08-04
  • 2021-06-25
  • 2021-11-17
  • 2021-10-31
  • 2021-05-15
相关资源
相似解决方案