加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

【python小随笔】单例模式设计(易懂版)

发布时间:2020-12-20 10:03:33 所属栏目:Python 来源:网络整理
导读:1:单例模式原理 大道理 :希望在系统中某个对象只能存在一个,单例模式是最好的解决方案,单例模式是一种常见的软件设置模式,在它的核心结构中只包含一个被称为单例类的特殊类,通过单例模式可以保证系统中的一个类只有一个实例而且该实例易于外界访问,从

1:单例模式原理

大道理:希望在系统中某个对象只能存在一个,单例模式是最好的解决方案,单例模式是一种常见的软件设置模式,在它的核心结构中只包含一个被称为单例类的特殊类,通过单例模式可以保证系统中的一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源

单例模式的要点有三类

  • 某个类只能有一个实例
  • 它必须创建这个实例
  • 它必须自行向整个系统提供这个实例

但是从具体角度实现来说的话,又可以分为三点

  • 单例模式的类只能提供私有的构造函数
  • 类定义中含有一个该类的静态私有对象
  • 该类提供了一个静态的共有的函数用于创建或获取它本身的静态私有对象
class test(object):
    instance = None               #用于判断是已经被示例过

    def __new__(cls,*args,**kwargs):
        if cls.instance == None:如果没被实例化过,就继承同一个分配空间

           cls.instance = super().__new__(cls))继承跟自己一样的,内存地址也一样的类

           return cls.instance返回它本身


    __init__(self,name):
            self.name = name
            print("My Name is {}".format(self.name))

T1 = test(xixi)
print(T1)
T2 = test(haha(T2)

输出结果: My Name
is xixi <__main__.test object at 0x000001A7499CD278> None

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读