设计模式
1.前人的总结和经验的提炼
2.被广为流传的设计模式都是针对某一个特定问题的成熟解决方案
单例设计模式
1.让类创建的对象在系统中是唯一的实例
2.创建几个对象,但是对象的地址空间是一样的
3.实例代码
class MusicPlayer(object):
instance = None # 类属性,用来标志是否给对象分配过地址空间
init_flag = False # 此属性用来标志初始化函数是否被调用过
def __new__(cls, *args, **kwargs):
if cls.instance is None: # 如果类属性为None,就为类对象分配地址空间,否则还是返回原本地址空间
cls.instance = object.__new__(cls)
return cls.instance
def __init__(self):
if MusicPlayer.init_flag: # 如果函数被调用过,直接返回
return
print '对象初始化' # 否则,就执行初始化函数
MusicPlayer.init_flag = True # 给标志重新赋值
p1 = MusicPlayer() # 定义两个对象,地址是一样的
print p1
p2 = MusicPlayer()
print p2