设计模式-单例模式的实现

单例模式的核心作用是确保一个类只有一个实例,并且提供一个访问该实验的全局访点。

单例模式只生成一个实例对象,减少了对系统资源的开销。当一个对象的产生需要比较多的资源,如:读取配置文件,产生其他依赖对象时,可以产生一个单例对象,然后永久驻留与内存中。从而极大的降低开销。

 1 class MySingleton:
 2 
 3     __obj = None
 4     __init_flag = True
 5 
 6     def __new__(cls, *args, **kwargs):
 7         if cls.__obj == None:
 8             cls.__obj = object.__new__(cls)
 9 
10         return cls.__obj
11 
12     def __init__(self,name):
13         if MySingleton.__init_flag:
14             print('init...')
15             self.name = name
16             MySingleton.__init_flag = False
17 
18 a = MySingleton('AA')
19 b = MySingleton('BB')
20 print(a)
21 print(b)