首页 > 代码库 > 单例模式

单例模式

内容:保证一个类只有一个实例,并提供一个访问它的 全局访问点。

角色:单例(Singleton)

使用场景:当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时

优点:

  • 对唯一实例的受控访问
  • 单例相当于全局变量,但防止了命名空间被污染

与单例模式功能相似的概念:全局变量、静态变量(方法)

单例的实现方法:

技术分享
#!/usr/bin/env python# -*- coding: utf8 -*-# __Author: "Skiler Hao"# date: 2017/6/2 18:46class Singleton(object):    def __new__(cls, *args, **kwargs):        if not hasattr(cls,"_instance"):            cls._instance = super().__new__(cls)        return cls._instanceclass MyClass(Singleton):    passclass1 = MyClass()class2 = MyClass()print(id(class1))print(id(class2))
__new__方法实现单例

 

单例模式