zoukankan      html  css  js  c++  java
  • Singleton(单例)

    意图:

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

    适用性:

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

    当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。

    #!/usr/bin/python
    #coding:utf8
    '''
    Singleton
    '''
     
    class Singleton(object):
        ''''' A python style singleton '''
     
        def __new__(cls, *args, **kw):
            if not hasattr(cls, '_instance'):
                org = super(Singleton, cls)
                cls._instance = org.__new__(cls, *args, **kw)
            return cls._instance
     
     
    if __name__ == '__main__':
        class SingleSpam(Singleton):
            def __init__(self, s):
                self.s = s
     
            def __str__(self):
                return self.s
     
     
        s1 = SingleSpam('spam')
        print id(s1), s1
        s2 = SingleSpam('spa')
        print id(s2), s2
        print id(s1), s1
  • 相关阅读:
    面向对象编程
    面向对象编程进阶
    pycharm常用快捷键
    面向对象
    深拷贝和浅拷贝
    hashlib模块
    日志配置
    常用模块大全
    正则详解
    软件目录规范
  • 原文地址:https://www.cnblogs.com/navysummer/p/9835115.html
Copyright © 2011-2022 走看看